在按HOME后重新启动应用程序时,如何返回到最近启动的活动?
|
熟悉的场景:我有一个Main活动,当按下按钮时会启动Game活动。如果用户按下HOME,然后再次启动我的应用程序,则应该向其显示“游戏”活动,这是他在使用该应用程序时最后做的事情。
但是,发生的事情是他再次获得了Main活动。我感到Android正在创建MainActivity的另一个实例并将其添加到该应用程序的堆栈中,而不是仅仅选择顶部的内容,因为如果在重新启动该应用程序后按BACK,我将进入Game活动!并且每次都会调用Main.onCreate方法,而不是调用GameActivity.onResume。
我的
AndroidManifest.xml
几乎是“裸露的骨头”:
<activity android:name=\"MainActivity\" android:label=\"@string/app_name\">
<intent-filter>
<action android:name=\"android.intent.action.MAIN\" />
<category android:name=\"android.intent.category.LAUNCHER\" />
</intent-filter>
</activity>
<activity android:name=\"GameActivity\" android:label=\"@string/app_name\">
</activity>
如您所见,没有什么太花哨的。
这就是启动新活动的方式,也非常简单:
Intent intent = new Intent(this, GameActivity.class);
startActivity(intent);
从理论上讲,这应该在“开箱即用”的Android系统中起作用,因为对一个非常相似的问题的回答是:在Android中维护标准应用程序活动回栈状态(使用singleTask启动模式),但并非如此。
我一直在阅读和重新阅读有关“活动,任务和堆栈”的文档,并浏览SO中的所有相关答案,但是我不明白为什么这么简单的设置不能按预期工作。
没有找到相关结果
已邀请:
6 个回复
烫珊
抽法
贸会
吠强祷豪硅
青董据零
徘廷
MainActivity上的标志组合提供了所需的行为。