如何管理Application实例的生命周期

时间:2012-02-10 08:35:01

标签: android

我将Application子类化为在静态变量中保持全局状态。但如果应用程序在后台留下,它最终会被杀死,这意味着我的全局状态将丢失。

我试图通过子类化Activity和覆盖onSaveInstanceState来解决这个问题,以便在每次销毁一个Activity时保存全局状态,然后在创建Activity时重新创建它。但是,每次创建活动时,这都会产生不可忽略的开销。

有人可能会争辩说,如果应用程序被杀死,那么正确的行为就是让用户从第一个Activity中重新开始,但是由于应用程序经常被杀死,我觉得这并不可接受。

有更好的方法吗?我已经看到一些建议在共享首选项中保存全局状态而不是静态变量,但由于某些原因我没有发现该解决方案引人注目。

1 个答案:

答案 0 :(得分:0)

onSaveInstanceState用于“中断”,其中活动/在用户交互时被销毁。您应该在那里保存小的状态信息,例如为可见视图输入文本(EditText,...)。发生这种情况的示例包括:旋转设备(活动被销毁和重新创建),来电,......

如果用户有一段时间没有与应用程序交互,则应永久保存状态。在这种情况下,我建议使用SharedPreferences或数据库。这是一项更多的工作,但在我看来这是最好的解决方案。

相关问题