我有什么:
我的应用程序中有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可能正在破坏我的任务,我需要保存活动状态。但如果我按回家并立即重新进入该应用程序,这没有意义吗?
建议表示赞赏。
答案 0 :(得分:0)
无法保证一旦您点击主页按钮并且您的活动进入onPause()
它将保持其状态(即使它保持相同状态,也无法保证活动的实际时间将留在记忆中)。这取决于设备,特别是它如何处理内部存储器。 (参见显示Android活动生命周期的this figure)。
最佳做法是始终使用onSaveInstanceState
方法保存您的状态。 This post为如何做到这一点提供了一个简单易行的例子。