保存应用程序状态

Ric*_*lay 4 android

作为我关于在活动之间共享状态的问题的后续,如何保存我的应用程序的实例状态?由于Application不扩展Activity,因此没有onSaveInstanceState覆盖的方法。

注意:事先,这不是重复的。尽管它的名字,我如何保存 Android 应用程序的状态?与活动状态有关

Dav*_*ebb 5

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

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

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

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