保存应用程序状态

时间:2010-01-11 09:54:30

标签: android

作为my question on sharing state between Activities的后续内容,如何保存应用程序的实例状态?由于Application未展开Activity,因此无法覆盖onSaveInstanceState方法。

注意:事先,这不是重复。尽管名称如此,How do I save an Android application’s state?与活动状态

相关

1 个答案:

答案 0 :(得分:4)

不能使用Application.onTerminate(),因为无法保证会调用它。

出于同样的原因,您无法使用onStop()中的onDestroy()Activity

因此,您必须在每个活动中使用onPause()方法进行保存。每个Activity都会在您saveState()中创建一个Application来电。由于这将被大量调用,因此您需要尽可能提高效率,理想情况下只将已更改的数据写入持久存储。

您还应注意,onSaveInstanceState()仅应用于存储Activity瞬态状态。例如,如果用户按下后退按钮结束Activity,则不会调用onSaveInstanceState()。因此,即使您没有共享状态,您仍应使用onPause()来保存持久更改。