码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2015-10-17 12:16:44      阅读:283      评论:0      收藏:0      [点我收藏+]

标签:android


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

          

设备旋转时候,当前的activity实例会被系统销毁,然后创建一个新的Activity实例。


接下来我们通过检测Activity的生命周期来观察下:


技术分享


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



技术分享

 

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


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

 

旋转设备会改变设备配置。设备配置是用来描述设备当前状态的一系列特征。这些特征包括:屏幕的方向,屏幕的尺寸,屏幕密度(是一个固定的设备配置,无法在运行时发生改变),键盘类型,底座模式及语言。

 

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



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



技术分享



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


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


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


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


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


技术分享


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

   技术分享









版权声明:本文为博主原创文章,未经博主允许不得转载。

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

标签:android

原文地址:http://blog.csdn.net/lhc1105/article/details/49202397

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!