如何让Android应用程序从暂停中恢复并优雅地恢复

如何让Android应用程序从暂停中恢复并优雅地恢复,android,lifecycle,Android,Lifecycle,我对Android活动生命周期非常熟悉,但我觉得我缺少了一些显而易见的东西 我有一个多活动的Android应用程序;它使用静态变量(在应用程序类中)来保持不同视图中使用的各种对象的句柄。当应用程序暂停(退出)并且Android(大概)清理内存以维护前台进程时,就会出现问题。当用户恢复应用程序时,它偶尔(并非总是)会返回并恢复用户离开的活动,但静态变量为空。更糟糕的是,活动有时似乎在静态变量仍然存在的情况下恢复,但对象中的内部变量为空 我最终实现了一个简单的健全性检查,检查静态是否为空(以及相关对

我对Android活动生命周期非常熟悉,但我觉得我缺少了一些显而易见的东西

我有一个多活动的Android应用程序;它使用静态变量(在应用程序类中)来保持不同视图中使用的各种对象的句柄。当应用程序暂停(退出)并且Android(大概)清理内存以维护前台进程时,就会出现问题。当用户恢复应用程序时,它偶尔(并非总是)会返回并恢复用户离开的活动,但静态变量为空。更糟糕的是,活动有时似乎在静态变量仍然存在的情况下恢复,但对象中的内部变量为空

我最终实现了一个简单的健全性检查,检查静态是否为空(以及相关对象最重要的内部变量),并在应用程序失败时返回启动。这确实减少了很多问题,但我仍然看到了偶尔出现的问题,因为检查每份简历的所有内容是不现实的()

我真正需要的是,如果Android操作系统决定在应用程序处于非活动状态时需要清除内存中的任何非GC内容,那么应用程序需要从头开始重新启动。我觉得应该有一个优雅的方式来做到这一点,但没有注意到文档中的任何内容


有什么想法吗?其他人如何避免此问题?

如果Android决定完全终止您的进程,则使用应用程序类保存状态可能会导致意外行为。退房
i、 e.您可能应该在活动生命周期回调中使用某种持久性(SharedReferences或一些DB)。

感谢您对该帖子的引用。持久性的问题是,对于我来说,每次用户切换活动时都保存和恢复状态是不可行的(这会花费太多时间),而让应用程序状态完全持久化将相当困难。不过,这个链接确实让我思考了一些问题。