您的位置:首页 > 其它

横竖屏切换时候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()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: