Может ли быть два стартовых Activity

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

Ответ

Да, в AndroidManifest.xml можно объявить несколько Activity с intent-filter <category android:name="android.intent.category.LAUNCHER" />. Однако при установке приложения пользователю будет предложено выбрать, какое Activity запускать по умолчанию.

Пример:

<activity android:name=".MainActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

<activity android:name=".SecondActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

На практике обычно используют одно стартовое Activity, а альтернативные точки входа (например, для разных типов пользователей) реализуют через deep links или проверки внутри одного стартового Activity.