Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在onPause中保存活动状态_Android_Save_Double_Lifecycle_Oncreate - Fatal编程技术网

Android 在onPause中保存活动状态

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, "

我有一个使用onSaveInstanceState成功保存和还原的变量

@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的活动的必填字段。它使用起来非常简单。也可以保存其他单例类对象状态。有关设置和使用信息,请参见此处: