从家里回到任务

时间:2012-06-30 21:44:00

标签: android stack android-activity state

我有什么:

我的应用程序中有3个基本嵌套结构的活动:

活动1 - >活动2 - >活动3

活动2包含ArrayList<CustomClass>中嵌入的数据。 CustomClass扩展了应用程序(如here所示),而活动3使用它来修改活动2的CustomClass数据。

我想要的是什么:

当用户点击主页按钮然后再次打开我的应用程序时,我想返回到我的堆栈顶部的任何活动。 (我认为这应该是Android的默认行为。)

它在我的Eclipse模拟器上工作正常,但在我的Google Nexus One和Huawei Honor上,任务完全重启。

我尝试将我的活动设置为以标准,singleTop和singleTask启动模式运行。我可以在手机上获得的最佳结果是返回活动1(这只是一个表单),并且在创建活动2之前仍然显示我在文本字段中输入的内容。

我也注意到如果我点击Home然后检查设置下的正在运行的应用程序,我的应用程序就没有列出。也许Android可能正在破坏我的任务,我需要保存活动状态。但如果我按回家并立即重新进入该应用程序,这没有意义吗?

建议表示赞赏。

1 个答案:

答案 0 :(得分:0)

无法保证一旦您点击主页按钮并且您的活动进入onPause()它将保持其状态(即使它保持相同状态,也无法保证活动的实际时间将留在记忆中)。这取决于设备,特别是它如何处理内部存储器。 (参见显示Android活动生命周期的this figure)。

最佳做法是始终使用onSaveInstanceState方法保存您的状态。 This post为如何做到这一点提供了一个简单易行的例子。