Ответ
Android определяет, какую Activity запустить, через Intent и Intent Filters в манифесте.
- Явный Intent указывает конкретный класс Activity:
val intent = Intent(this, TargetActivity::class.java)
startActivity(intent)
- Неявный Intent описывает действие (например,
ACTION_VIEW) и данные (например, URI). Система ищет Activity с подходящим<intent-filter>в манифесте:
<activity android:name=".MyActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="http" android:host="example.com" />
</intent-filter>
</activity>
Если несколько Activity подходят, показывается диалог выбора (Chooser). Приоритет определяется по <priority> в <intent-filter>.