Android屏幕旋转时Activity的生命周期
2013-04-13 14:28
405 查看
/article/10976454.html
很多时候会用到屏幕旋转时需要对一些数据进行保存,例如当横竖屏区切换时要保存先前屏幕的一些数据和状态,个人认为有两个方法提供使用:
1.当前的Activity不销毁:
那么就需要在AndroidManifest.xml配置文件中的Activity标签下面添加:android:configChanges="orientation|keyboardHidden"
然后在activity中重写onConfigurationChanged()方法,每次旋转时会调用该方法,可以再该方法中处理数据
生命周期如下:
![](http://my.csdn.net/uploads/201206/06/1338973966_6383.jpg)
从上图可以看出,无论你怎么旋转都不会销毁当前的Activity,只会执行onConfigurationChanged()方法,因此只要在该方法中处理响应的数据即可
不设置Activity的android:configChanges时,切屏会重新调用各个生命周期;设置Activity的android:configChanges="orientation"或android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法(模拟器和真机不同)
2.销毁当前的Activity:
如果销毁当前的Activity,那么就要重写Activity的两个方法onSaveInstanceState()和 onRestoreInstanceState(),显然从方法名字可以看出一个是保存
数据,一个是还原数据,生命周期如下:
![](http://my.csdn.net/uploads/201206/06/1338974256_4116.jpg)
显然,当屏幕旋转时在什么时候保存数据和什么时候还原数据一目了然了
源码下载地址:http://download.csdn.net/detail/zshq280017423/4356346
很多时候会用到屏幕旋转时需要对一些数据进行保存,例如当横竖屏区切换时要保存先前屏幕的一些数据和状态,个人认为有两个方法提供使用:
1.当前的Activity不销毁:
那么就需要在AndroidManifest.xml配置文件中的Activity标签下面添加:android:configChanges="orientation|keyboardHidden"
然后在activity中重写onConfigurationChanged()方法,每次旋转时会调用该方法,可以再该方法中处理数据
生命周期如下:
![](http://my.csdn.net/uploads/201206/06/1338973966_6383.jpg)
从上图可以看出,无论你怎么旋转都不会销毁当前的Activity,只会执行onConfigurationChanged()方法,因此只要在该方法中处理响应的数据即可
不设置Activity的android:configChanges时,切屏会重新调用各个生命周期;设置Activity的android:configChanges="orientation"或android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法(模拟器和真机不同)
2.销毁当前的Activity:
如果销毁当前的Activity,那么就要重写Activity的两个方法onSaveInstanceState()和 onRestoreInstanceState(),显然从方法名字可以看出一个是保存
数据,一个是还原数据,生命周期如下:
![](http://my.csdn.net/uploads/201206/06/1338974256_4116.jpg)
显然,当屏幕旋转时在什么时候保存数据和什么时候还原数据一目了然了
源码下载地址:http://download.csdn.net/detail/zshq280017423/4356346
相关文章推荐
- Android 屏幕旋转时Activity的生命周期
- 单击Android设备后退键,主屏幕键以及旋转屏幕如何影响Activity的生命周期
- Android屏幕旋转时Activity的生命周期
- Android屏幕旋转时Activity的生命周期
- Android屏幕旋转时Activity的生命周期
- Android菜鸟笔记-旋转屏幕时,Activity的生命周期
- Android屏幕旋转时Activity的生命周期
- android 屏幕旋转时Activity的生命周期
- Android屏幕旋转时Activity的生命周期
- android 屏幕旋转 activity中多个fragment重叠
- android 屏幕旋转 activity中多个fragment重叠
- 在 Android 程序中禁止屏幕旋转和避免重启Activity
- Android 设定横屏,禁止屏幕旋转,Activity重置 [更新视频播放器相关]
- Android--屏幕旋转生命周期
- Android开发 旋转屏幕导致Activity重建解决方法
- 三星手机note 3 调用系统拍照后,屏幕旋转导致,activity生命周期变更,程序奔溃或者无法获取图片。
- 在 ANDROID 程序中禁止屏幕旋转和避免重启Activity
- Android屏幕旋转时,设置Activity不重新调用onCreate
- Android 禁止屏幕旋转 & 旋转屏幕时保持Activity内容 转
- Android 旋转屏幕--处理Activity与AsyncTask的最佳解决方案