数据存储恢复机制

当系统配置发生改变后,activity会被销毁,onPause、onStop、onDestory均会被调用,系统会调用
onSaveInstanceState方法来保存当前的状态。这个方法是在onStop方法之前,与onPause没有特定的顺序。
这个方法只会出现在activity异常终止的情况下,正常情况下系统不会调用这个方法。
当activity被重建后,系统会调用onRestoreInstanceState方法来恢复数据,发生在onStart之后。接收数据的位置可以选择onRestoreInstanceState或者onCreate.两者的区别是:
onRestoreInstanceState方法一旦被调用,其参数一定是有值的,不用判断是否为空。但onCreate不行,
onCreate如果是正常启动的话,其参数为空,所以必须要额外的判断。官方建议用onRestoreInstanceStateprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);if(savedInstanceState!=null){String test=savedInstanceState.getString("extra_test");Log.d(TAG,test);}}protected void onSaveInstanceState(Bundle outState){super.onSaveInstanceState(outState);Log.d(TAG,"onSaveInstanceState");outState.putString("extra_test", "test");}protected void onRestoreInstanceState(Bundle savedInstanceState){super.onRestoreInstanceState(savedInstanceState);String test=savedInstanceState.getString("extra_test");Log.d(TAG,test);}

当系统配置发生改变以后,怎样才能不重新调用生命周期呢?

可以给activity指定configChanges属性。
当不指定configChanges属性时,会重新调用各个生命周期。切横屏调用一次,切竖屏调用两次。
当为configChanges属性指定为orientation时,各个生命周期均会调用一次。
当为configChanges属性指定为orientation|keyboardHidden时,不会重新调用生命周期,只会执行
onConfigurationChanged方法。

Android数据存储恢复机制相关推荐

  1. Android数据存储几种方式用法总结

    Android数据存储几种方式用法总结 1.概述 Android提供了5种方式来让用户保存持久化应用程序数据.根据自己的需求来做选择,比如数据是否是应用程序私有的,是否能被其他程序访问,需要多少数据存 ...

  2. Android数据存储安全实践

    0x00 数据安全 Android操作系统自问世以来凭借其开放性和易用性成为当前智能手机的主流操作系统之一,作为与人们关系最密切的智能设备,越来越多的通讯录.短信.视频等隐私数据以明文的方式保存在手机 ...

  3. 【Android数据存储】ContentProvider详细介绍(附实例源码)

    1.ContentProvider是什么? ContentProvider--内容提供者.它是一个类,这个类主要是对Android系统中进行共享的数据进行包装,并提供了一组统一的访问接口供其他程序调用 ...

  4. Android 数据存储

    参考文章 Android 数据存储-外部存储(SD卡) Android_数据存储_File API Guides 概述 Android 提供了多种选项来保存永久性应用数据,这一过程也有叫做是数据的持久 ...

  5. Android数据存储——2.文件存储_B_资源文件

    今天学习Android数据存储--文件存储_资源文件 把资源文件mybook.txt放入项目目录下的res资源文件夹下的raw文件夹下(没有则新建),PS:mybook.txt存为UTF-8编码. X ...

  6. Android数据存储——2.文件存储_C_DOM解析XML文档

    今天学习Android数据存储--文件存储_DOM解析XML文档 位于org.w3c.dom操作XML会比较简单,就是将XML看做是一颗树,DOM就是对这颗树的一个数据结构的描述,但对大型XML文件效 ...

  7. Android数据存储之GreenDao 3.0 详解

    前言: 今天一大早收到GreenDao 3.0 正式发布的消息,自从2014年接触GreenDao至今,项目中一直使用GreenDao框架处理数据库操作,本人使用数据库路线 Sqlite----> ...

  8. < Android数据存储> 任务二 应用程序数据文件夹里的文件读写

    :zh]Android中提供了两个方法用来打开应用程序的数据文件夹IO流. 1.FileInputStream openFileInput(String name):参数name表示某个文件名,该方法 ...

  9. 5 Android数据存储 任务二 应用程序数据文件夹里的文件读写 ,

    Android中提供了两个方法用来打开应用程序的数据文件夹IO流. 1.FileInputStream openFileInput(String name):参数name表示某个文件名,该方法用于打开 ...

最新文章

  1. php在dw中设置按钮圆角,Dreamweaver怎么用CSS制作圆角按钮?
  2. 如何上传本地图片到PictureBox控件
  3. 电池技术多年没有较大发展,成为移动设备最大制约
  4. 《计算机网络》第二章:物理层(The Physical Layer)
  5. 1081 检查密码 (15 分)—PAT (Basic Level) Practice (中文)
  6. vue 中使用axios的总结
  7. HDU5961 —— 传递【竞赛图】【判断传递闭包】
  8. 经典算法——五大常用算法
  9. 计算机软件产品类退税,软件产品增值税退税政策详解.doc
  10. android指南针校准 代码_Android:指南针的制作
  11. css中元素居中和文本居中
  12. 实验二 (一) 大小写英文字母表
  13. samba报错“Failed to open /etc/secrets.tdb”
  14. “拼多多和短视频极速版”,让我怎么吐槽你好呢!
  15. 三、常规Dos命令附图
  16. iphone的铃声格式
  17. TensorFlow学习日记之tflearn
  18. 作为IT行业过来人,我有一些话不得不说
  19. 2021-MAXP-DGL图机器学习大赛-Graph@ICT-复盘与总结【rank6】
  20. 20230210组会总结

热门文章

  1. jsp model1模式 制作简易去哪儿网校招界面(四)
  2. 初学者,日益维新,记录所学点点滴滴
  3. 低功耗蓝牙模块智能门锁应用案例
  4. 一个人,不管是富是穷,都可以富养自己
  5. springcloud(十一):服务网关 Spring Cloud GateWay 入门
  6. ORACLE EBS常用标准表结构
  7. 第二代商用计算机,紫光计算机第二代商用台式机 Unis 526S/526T G2 上市
  8. 2.4G蓝牙双模方案xii5168 超高性价比
  9. 7.7.3、下界通配符
  10. 找女朋友2109(快排)