您的位置:首页 > 移动开发 > Android开发

Android——处理设备旋转Activity销毁时临时数据丢失的问题

2015-10-17 11:30 483 查看

     一,在设备的旋转的时候,发生了什么?

           设备旋转时候,当前的activity实例会被系统销毁,然后创建一个新的Activity实例。
接下来我们通过检测Activity的生命周期来观察下:

上面是我启动activity时依次发生的事件,接下来我旋转设备:

 
              可以看到,旋转的时候,第一个activity被destroy掉,之后新的activity被创建。

  二,理解设备配置与备选资源

 旋转设备会改变设备配置。设备配置是用来描述设备当前状态的一系列特征。这些特征包括:屏幕的方向,屏幕的尺寸,屏幕密度(是一个固定的设备配置,无法在运行时发生改变),键盘类型,底座模式及语言。 只要在应用运行中设备配置发生了变化,安卓就会销毁当前activity,然后再新建一个activity.

三,为设备旋转后使用新布局

     如图,在res文件夹下新建layout-land文件夹,在里面新建同名布局文件,那么,当设备转到水平的时候,新创建activity的时候,就会自动使用这个文件夹下的水平布局文件。

四,在设备旋转之前,如何保存当前的临时数据?

     类似Web中的刷新,当我刷新后,当前页面的临时数据都被清掉了,比如我当前正在填写一个表单,里面选择了性别女,刷新下,又要重新填写。显然,设备旋转时产生了一个隐性的bug,那么,安卓中如何处理这种保存临时数据的问题呢?

     我们可以通过重写onSaveInstanceState方法实现。

      首先,在这个方法里面写入要保存的数据:

     之后,我们在OnCreate方法里面重新载入数据:

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: