Java 从后台还原android应用程序堆栈
比如说,我从主屏幕启动我的应用程序,浏览一些活动,然后按home键并在Gmail应用程序中执行其他操作 检查完邮件后,我再次按home键离开Gmail应用程序,然后再次单击主屏幕上的我的应用程序图标返回 当我返回到我的应用程序时,我希望它返回到我参加的最后一个活动,而不是开始一个全新的会话。我一整天都在想这个问题 我的第一项活动清单如下:Java 从后台还原android应用程序堆栈,java,android,Java,Android,比如说,我从主屏幕启动我的应用程序,浏览一些活动,然后按home键并在Gmail应用程序中执行其他操作 检查完邮件后,我再次按home键离开Gmail应用程序,然后再次单击主屏幕上的我的应用程序图标返回 当我返回到我的应用程序时,我希望它返回到我参加的最后一个活动,而不是开始一个全新的会话。我一整天都在想这个问题 我的第一项活动清单如下: <activity android:name=".Main" android:label="@string/app_nam
<activity android:name=".Main"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:alwaysRetainTaskState="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
category属性启动器使我的应用程序始终从activity Main启动,因此我不知道如何恢复上一个活动。人们告诉我使用SharedReferences保存最后一个活动并在发布时加载它,但我不认为这样做是有意的,因为它不是很优雅 尝试在清单中使用以下选项之一:
<activity android:launchMode=["multiple" | "singleTop" |
"singleTask" | "singleInstance"] ...
我认为这是唯一的方法,因为当你启动一个应用程序时,启动器应用程序会发送intent“android.intent.action.MAIN”,而你的应用程序中唯一响应此意图的活动就是你的主活动,因此它会被激活。因此,您唯一能做的就是将会话保存到某个位置,如果已保存会话,则在活动启动时将应用恢复到以前的状态。onResume()和onPause是否正确执行
protected void onResume(){
super.onResume();
}
protected void onPause() {
super.onPause();
}
你的舱单看起来不错;它应该像你期望的那样工作。你有没有可能只在调试器下看到这一点,就像这个几乎相同的问题?当我得到你的答案时,我发现它与eclipse调试无关,而是与运行配置有关:我在Android选项卡下将启动操作设置为:启动默认活动。我把这个改为“什么都不做”,它成功了。真不敢相信我花了这么长时间才意识到这一点!谢谢你应该在回答中加上一个答案。