参考自:《Android权威编程指南》第3章 Activity的生命周期


原因:

设备旋转时,会改变设备配置,当前Activity实例会被销毁,然后创建一个新的Activity实例。

(设备配置是用来描述设备当前状态的一系列特征,包括:屏幕的方向/屏幕的密度/屏幕的尺寸/键盘类型/底座模式及语言等等)


只要在应用运行中设备配置发生了改变,Android就会销毁当前activity,然后再新建一个activity。

另外,在应用运行中,虽然会发生可用键盘或语言的改变,但设备屏幕方向的改变是最为常见的场景


solve方法:

设备旋转前保存数据


Activity方法:

@Override    protected void onSaveInstanceState(Bundle outState)

该方法通常在onPuase()/onStop()及onDestroy()方法之前由系统调用。

方法onSaveInstanceState()默认的实现要求所有activity的视图将自身状态数据保存在Bundle对象中。Bundle是存储字符串键与限定类型值之间映射关系(键-值对)的一种结构


实现过程:

通过覆盖onSaveInstanceState()方法,将一些数据保存在Bundle中,然后在onCreate()方法中取回这些数据。

注意:Bundle中存储和恢复的数据类型只能是基本数据类型(primitive type)以及可以实现Serializable接口的对象。故创建自己的定制类时,如需在onSaveInstanceState()方法中保存类对象,记得实现Serializable接口



更多相关文章

  1. Android(安卓)AsyncTask完全解析,带你从源码的角度彻底理解
  2. Android(安卓)adb shell 命令
  3. Android系统启动研究1
  4. Android(安卓)调试桥(adb)是多种用途的工具,该工具可以帮助你你管
  5. Android(安卓)Q Beta 发布
  6. Unity3D研究院之与Android相互传递消息(十九)
  7. Android(安卓)Treble 结构:Part 1 - 介绍
  8. 浅谈Java中Collections.sort对List排序的两种方法
  9. Python list sort方法的具体使用

随机推荐

  1. Android(安卓)获取系统权限的代码
  2. Android(安卓)Studio中点击按钮跳转到其
  3. [Android] Android(安卓)使用 Greendao
  4. android给view比如layout等添加阴影效果
  5. Android(安卓)ViewPager 左右滑动-3
  6. Android(安卓)studio 签名 报错:Could not
  7. Android实现自定义的 时间日期 控件
  8. android 实现类似Iphone底部消息数量提示
  9. 導入android項目出錯問題解決
  10. Android设置上下边框或者左右边框