大型应用程序中的onSaveInstanceState()/ onRestoreInstanceState()

时间:2012-10-25 21:03:39

标签: android

我有一个复杂的应用程序:一个Application类和一组Activity类从一个公共Activity开始作为Intents。

根据日志,这个过程正在消亡。当我运行我的应用程序,回家,启动一大堆其他应用程序然后返回我的应用程序时,就会发生这种情况。

在日志中,我看到了:

10-25 12:11:08.195:I / ActivityManager(2492):处理my.awesome.app(pid 20860)已经死亡。

my.awesome.app然后在应用程序重新启动时通过主Activity的onCreate()方法。

但是,我最终在错误的屏幕上,因为将我引导到正确屏幕的实例变量不会保留应用程序死亡时的值。实际上,我希望应用程序不会因为系统被杀死而死亡,然后恢复生机。

查看代码,我看不到onSaveInstanceState()/ onRestoreInstanceState()方法,所以我很确定我需要提供它们。

问题是哪些活动需要提供onSaveInstanceState()/ onRestoreInstanceState()/对他们所做的事情作出反应?

假设我是一些深度活动 - 也就是说,我的Application类已启动一个Activity类,它启动一个Thread来运行一个Activity,并且它本身正在通过一个Intent运行另一个Activity。

所有涉及的类是否需要提供/响应onSaveInstanceState()/ onRestoreInstanceState()?它只是Application类,因为我正在检测将不正确的值发送到错误的屏幕吗?

1 个答案:

答案 0 :(得分:0)

onSave / onRestoreInstanceState实际上并不适用于应用程序范围的设置。它更适用于单个活动的特定设置。

如果你总是希望在一个进程被杀死后返回某个活动,你应该将最后一个打开状态保存到一个首选项中,然后在主启动器活动的onCreate中,根据该启动器启动所需的活动。已保存偏好的值。