Я прочитал несколько статей здесь (и в других местах), которые описывают, как динамически выбирать, какие действия показывать при запуске приложения.Ниже приведен мой код:
AndroidManifest.xml
<activity android:name=".StartupActivity"
android:theme="@android:style/Theme.NoDisplay">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
StartupActivity.java
public class StartupActivity extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
Intent intent;
if (RandomClass.getSomeStaticBoolean())
{
intent = new Intent(this, ActivityOften.class);
}
else
{
intent = new Intent(this, ActivityRare.class);
}
startActivity(intent);
finish();
}
}
Оба ActivityOften и ActivityRare объявлены в манифесте (без категории средства запускаКонечно) и расширить ListActivity и Activity соответственно.В 99% случаев первым показанным действием является ActivityOften, основанный на RandomClass.getSomeStaticBoolean ().
Итак, запуская мое приложение с иконки в первый раз, я ломаюсь внутри StartupActivity.onCreate.Выбор сделан правильно.Но затем любые последующие попытки запустить приложение (из ярлыка или меню приложений) снова показывают ActivityOften.Никаких дальнейших разрывов внутри класса StartupActivity не происходит.Несмотря на то, что я знаю, что RandomClass.getSomeStaticBoolean () изменил значение и должно появиться ActivityRare, 1-е действие продолжает появляться.
Есть идеи?
Спасибо, Merci, Gracias, DankeГрейзи!Шон