0

我有一个复杂的应用程序:一个 Application 类和一堆 Activity 类,它们从一个通用 Activity 开始作为 Intent。

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

在日志中,我看到:

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

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

但是,我最终出现在错误的屏幕上,因为将我引导到正确屏幕的实例变量没有保留它在应用程序死亡时的值。实际上,我希望该应用程序没有死,因为它被系统杀死然后又复活了。

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

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

假设我有几个活动很深——也就是说,我的应用程序类已经启动了一个活动类,它启动了一个线程来运行一个活动,并且它本身正在通过一个意图运行另一个活动。

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

4

1 回答 1

0

onSave/onRestoreInstanceState 并不是真正适用于应用程序范围的设置。更多的是针对单个活动的设置。

如果您总是想在进程被杀死后返回某个活动,您可能应该将上次打开状态保存到首选项中,然后在您的主启动器活动的 onCreate 中,根据保存的偏好。

于 2012-10-25T21:09:43.050 回答