作为my question on sharing state between Activities的后续内容,如何保存应用程序的实例状态?由于Application
未展开Activity
,因此无法覆盖onSaveInstanceState
方法。
注意:事先,这不是重复。尽管名称如此,How do I save an Android application’s state?与活动状态
相关答案 0 :(得分:4)
你不能使用Application.onTerminate()
,因为无法保证会调用它。
出于同样的原因,您无法使用onStop()
中的onDestroy()
或Activity
。
因此,您必须在每个活动中使用onPause()
方法进行保存。每个Activity
都会在您saveState()
中创建一个Application
来电。由于这将被大量调用,因此您需要尽可能提高效率,理想情况下只将已更改的数据写入持久存储。
您还应注意,onSaveInstanceState()
仅应用于存储Activity
的瞬态状态。例如,如果用户按下后退按钮结束Activity
,则不会调用onSaveInstanceState()
。因此,即使您没有共享状态,您仍应使用onPause()
来保存持久更改。