横竖屏切换时候Activity的生命周期
2015-08-05 22:55
387 查看
/article/5122040.html
点击打开链接
大家都知道,一般情况下如果屏幕方向发生了改变,android就会销毁当前Activity,然后再新建一个Activity,此时调用的activity生命周期顺序是:
onPause()——>onSaveInstanceState()——>onStop()——>onDestroy()——>onCreat()——>onStart()——>onRestoreInstanceState()——>onResume()
以下为如果想解决横竖屏切换时,activity不重新创建:
(1)设置 android:configChanges="orientation" 和不设置这个属性,生命周期表现为重新创建activity
(2)设置 android:configChanges="orientation|keyboardHidden",在android2.3上表现为不重新创建activity,android4.0如下
a)android:targetSdkVersion<="12",生命周期表现为不重新创建activity
b)android:targetSdkVersion>"12",表现为重新创建activity
(3)设置 android:configChanges="orientation|keyboardHidden|screenSize",在2.3和4.0上都表现为不重新创建
以下为我自己测试所得:
首先声明:横屏切竖屏 & 竖屏切横屏 调用的activity的生命周期顺序是一样的:
android4.4版本,targetSdkVersion = 18,什么都不设置的情况:切换屏幕方向时,activity会被销毁,并重新创建:
onPause()——>onSaveInstanceState()——>onStop()——>onDestroy()——>onCreat()——>onStart()——>onRestoreInstanceState()——>onResume()
android4.4版本,targetSdkVersion = 18
设置Activity属性:android:configChanges = "orientation|keyboardHidden" ||
android:configChanges = "orientation"
与什么都不设置效果是一样的
android4.4版本,targetSdkVersion = 10:切换屏幕方向时,Activity不会被销毁:
onConfigurationChanged()
android4.4版本,targetSdkVersion = 18,android:configChanges = "orientation|keyboardHidden|screenSize"
切换屏幕方向,Activity不会被销毁:
onConfigurationChanged()
点击打开链接
大家都知道,一般情况下如果屏幕方向发生了改变,android就会销毁当前Activity,然后再新建一个Activity,此时调用的activity生命周期顺序是:
onPause()——>onSaveInstanceState()——>onStop()——>onDestroy()——>onCreat()——>onStart()——>onRestoreInstanceState()——>onResume()
以下为如果想解决横竖屏切换时,activity不重新创建:
(1)设置 android:configChanges="orientation" 和不设置这个属性,生命周期表现为重新创建activity
(2)设置 android:configChanges="orientation|keyboardHidden",在android2.3上表现为不重新创建activity,android4.0如下
a)android:targetSdkVersion<="12",生命周期表现为不重新创建activity
b)android:targetSdkVersion>"12",表现为重新创建activity
(3)设置 android:configChanges="orientation|keyboardHidden|screenSize",在2.3和4.0上都表现为不重新创建
以下为我自己测试所得:
首先声明:横屏切竖屏 & 竖屏切横屏 调用的activity的生命周期顺序是一样的:
android4.4版本,targetSdkVersion = 18,什么都不设置的情况:切换屏幕方向时,activity会被销毁,并重新创建:
onPause()——>onSaveInstanceState()——>onStop()——>onDestroy()——>onCreat()——>onStart()——>onRestoreInstanceState()——>onResume()
android4.4版本,targetSdkVersion = 18
设置Activity属性:android:configChanges = "orientation|keyboardHidden" ||
android:configChanges = "orientation"
与什么都不设置效果是一样的
android4.4版本,targetSdkVersion = 10:切换屏幕方向时,Activity不会被销毁:
onConfigurationChanged()
android4.4版本,targetSdkVersion = 18,android:configChanges = "orientation|keyboardHidden|screenSize"
切换屏幕方向,Activity不会被销毁:
onConfigurationChanged()
相关文章推荐
- IOS基础002自定义控件
- Leetcode: House Robber II
- HTML入门笔记
- Linux下安装NVIDIA显卡驱动(无集显)
- Java线程(4)线程池
- 解决js跨域问题的思路及实践
- iOS开发--画一条黑色的横线
- NYOJ 845 无主之地1
- 5注21选5升序彩票(室友一下午才解决,我只用了1个小时,得瑟一下子)
- CodeForces 115E Linear Kingdom Races(线段树 + DP)
- Java反射 - 简单的给Bean赋值和取值
- yii2关于HTTP请求处理的总结
- POJ C程序设计进阶 编程题#3: 发票统计
- Ant学习-001-ant 基础知识及windows环境配置
- 励精图治---Concurrency---共享对象
- 树莓派实战4:配置一小时发送一次邮件
- iOS下OpenGL ES 3.0编程入门(一):构建Hello World环境
- 创业之谈-相信勇气,积累经验
- git 断点续传
- Svn入门