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

Android 大型应用程序中的onSaveInstanceState()/onRestoreInstanceState(),android,Android,我有一个复杂的应用程序:一个应用程序类和一堆活动类,它们是从一个公共活动开始的 根据日志,这个过程正在消亡。当我运行我的应用程序,点击主页,启动一大堆其他应用程序,然后返回到我的应用程序时,就会发生这种情况 在日志中,我看到: 10-25 12:11:08.195:I/ActivityManager(2492):进程my.awesome.app(pid 20860)已死亡 my.awesome.app然后在应用程序重新启动时通过主活动的onCreate()方法 但是,我最终进入了错误的屏幕,因为

我有一个复杂的应用程序:一个应用程序类和一堆活动类,它们是从一个公共活动开始的

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

在日志中,我看到:

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

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

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

查看代码,我没有看到onSaveInstanceState()/onRestoreInstanceState()方法,因此我非常确定我需要提供它们

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

让我们假设我有两个深入的活动——也就是说,我的应用程序类启动了一个活动类,该类启动了一个线程来运行一个活动,而它本身通过一个意图运行另一个活动


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

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

如果总是希望在进程终止后返回到某个活动,则可能应该将最后打开的状态保存到首选项中,然后在创建主启动器活动时,根据保存的首选项的值启动所需的活动