Что такое Intent фильтры

«Что такое Intent фильтры» — вопрос из категории Android компоненты, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Intent фильтры объявляются в AndroidManifest.xml и определяют, какие типы Intent может обрабатывать компонент (Activity, Service, BroadcastReceiver). Они состоят из <action>, <category> и <data>.

Пример для Activity, открывающей ссылки:

<activity android:name=".WebActivity">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="https" />
    </intent-filter>
</activity>

Нюансы:

  • Несколько фильтров у компонента = обработка разных Intent
  • <category> DEFAULT обязателен для неявных Intent
  • <data> может уточнять MIME-тип, host, port и др.
  • Приоритет фильтров можно задать через android:priority