Android 在onPause中保存活动状态
我有一个使用onSaveInstanceState成功保存和还原的变量Android 在onPause中保存活动状态,android,save,double,lifecycle,oncreate,Android,Save,Double,Lifecycle,Oncreate,我有一个使用onSaveInstanceState成功保存和还原的变量 @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); // the UI component values are saved here. outState.putDouble("VALUE", liter); Toast.makeText(this, "
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState); // the UI component values are saved here.
outState.putDouble("VALUE", liter);
Toast.makeText(this, "Activity state saved", Toast.LENGTH_LONG).show();
}
但这只有在活动被破坏时才起作用。我想通过重写onPause()方法来保存相同的变量,并在活动不再暂停时返回。非常感谢关于如何执行此操作的任何想法,正如您所发现的,
onSaveInstanceState
仅在需要重新创建相同的所谓“实例”的情况下才有用被操作系统破坏后的活动,通常是因为它在后堆栈中太远,在内存压力下无法保持活动状态
在onPause
中保存数据确实是实现持久性的一种方法,这种持久性可以持续到活动的一次执行之后。要使其正常工作,您有几个选项,包括:
- 共享首选项
- 档案
- 数据库
- 内容提供商
只要将变量
foo
分配给onPause
中的类成员mFoo
,只要将mFoo
保存在onSaveInstanceState
的状态包中即可。还原场景也是如此。如果您选择将活动状态保存到共享首选项,您可以查看我编写的库的GNStateManager组件,以便于存储和检索标记为my@GNState annotation的活动的必填字段。它使用起来非常简单。也可以保存其他单例类对象状态。有关设置和使用信息,请参见此处: