有没有办法在运行时设置应用程序的第一个活动?
我希望我的应用程序显示不同的输入活动,具体取决于它是否是第一次启动。我的意思是,我可以快速展示一项决定接下来会发生什么的活动,但这听起来并不合理。
你能帮助我吗?
答案 0 :(得分:6)
在运行时没有办法做到这一点。但是你可以做的是有一个轻量级的委托活动,它被设置为android.intent.action.MAIN
的意图过滤器,然后根据你已经确定的条件启动另一个活动。可以将此活动设置为具有android:theme="@android:style/Theme.Translucent"
的属性,以使其不显示,但只是快速处理您的决定并消失。您可能还需要设置属性android:noHistory="true"
以确保在将另一个活动推送到堆栈顶部后从堆栈中删除活动。
答案 1 :(得分:0)
在AlreadyStartedOnceActivity
的onResume方法中:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
if(prefs.getBoolean("run-once", false))
{
startActivity(intentToStartOneTimeActivity);
finish();
}
这样,您可以将“主要”活动作为启动活动,但在需要时可以从中启动一次性活动。