让我们说我从主屏幕启动我的应用程序,浏览一些活动,然后我按下主页键并在Gmail应用程序中执行其他操作。
检查完邮件后,我再次按主页键退出Gmail应用程序,然后再次点击主屏幕上的应用程序图标返回。
当我回到我的应用程序时,我希望它返回到我所在的最后一个活动,而不是开始一个全新的会话。我一直试图弄清楚这一点。
我的第一项活动的清单如下:
<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>
类别属性LAUNCHER使我的应用总是从活动主页开始,所以我不知道如何恢复最后一个活动。人们告诉我使用共享偏好保存最后一个活动并将其加载到Launch上,但我不认为这样做是因为它不是很优雅。
答案 0 :(得分:1)
我认为这是唯一的方法,因为当您启动应用程序时会发生的事情是Launcher应用程序发送意图“android.intent.action.MAIN”而您的应用程序中唯一响应此意图的活动是您的主要活动,因此它被激活。因此,您唯一可以做的就是保存您的会话和活动启动,如果已经保存的会话将应用程序恢复到以前的状态。
答案 1 :(得分:0)
尝试在清单中使用其中一个:
<activity android:launchMode=["multiple" | "singleTop" |
"singleTask" | "singleInstance"] ...
答案 2 :(得分:0)
onResume()和onPause是否正确实现?
protected void onResume(){
super.onResume();
}
protected void onPause() {
super.onPause();
}