Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从后台还原android应用程序堆栈_Java_Android - Fatal编程技术网

Java 从后台还原android应用程序堆栈

Java 从后台还原android应用程序堆栈,java,android,Java,Android,比如说,我从主屏幕启动我的应用程序,浏览一些活动,然后按home键并在Gmail应用程序中执行其他操作 检查完邮件后,我再次按home键离开Gmail应用程序,然后再次单击主屏幕上的我的应用程序图标返回 当我返回到我的应用程序时,我希望它返回到我参加的最后一个活动,而不是开始一个全新的会话。我一整天都在想这个问题 我的第一项活动清单如下: <activity android:name=".Main" android:label="@string/app_nam

比如说,我从主屏幕启动我的应用程序,浏览一些活动,然后按home键并在Gmail应用程序中执行其他操作

检查完邮件后,我再次按home键离开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>


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选项卡下将启动操作设置为:启动默认活动。我把这个改为“什么都不做”,它成功了。真不敢相信我花了这么长时间才意识到这一点!谢谢你应该在回答中加上一个答案。