Изменить начальную Activity программно

Всем привет, подскажите, есть ли способ определять стартовую Activity при запуске приложения? Т.е., я имею ввиду, что у меня есть Activity1 и Activity2, по умолчанию в манифесте стартовая это Activity1, но иногда(когда выполняется определённое условие) мне нужно стартовать с Activity2. Можете подсказать что-нибудь?


Ответы (2 шт):

Автор решения: AVRamones

Возможно сделать стартовой Activity3, в которой будет проверяться условие и осуществляться переход либо в Activity1 либо в Activity2

→ Ссылка
Автор решения: woesss

Есть такой вариант:
Атрибут манифеста: android:enabled="false" - отключает активность изначально.
Объявляем обе активности точками входа, но одну отключаем:

    <activity android:name=".Activity1">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".Activity2"
        android:enabled="false">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

Затем в коде мы можем менять состояние этого атрибута:

    PackageManager pm = context.getPackageManager();
    pm.setComponentEnabledSetting(new ComponentName(context, Activity1.class),
        PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
        PackageManager.DONT_KILL_APP);
    pm.setComponentEnabledSetting(new ComponentName(context, Activity2.class),
        PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
        PackageManager.DONT_KILL_APP);

И таким образом у нас меняется стартовая активность. Но сделать это мы можем, естественно, только заранее - то есть мы выбираем с какой активности приложение запустится в следующий раз.

→ Ссылка