保存应用程序状态

问题描述:

my question on sharing state between Activities开始,如何保存我的应用程序的实例状态?由于Application不延伸Activity,所以没有onSaveInstanceState方法可以覆盖。保存应用程序状态

注:事先,这不是重复的。尽管它的名字,How do I save an Android application’s state?涉及到活动状态

不能使用Application.onTerminate(),因为谁也不能保证,这将被调用。

出于同样的原因,您不能使用onStop()onDestroy()或从Activity

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

您还应该注意,onSaveInstanceState()应仅用于存储瞬态状态的Activity。例如,如果Activity由用户按下后退按钮onSaveInstanceState()而未被调用。所以,即使你没有共享状态,你仍然应该使用onPause()来保存持续的更改。