横竖屏切换时候Activity的生命周期

原创 2016年08月30日 21:41:07
曾经遇到过一个面试题,让你写出横屏切换竖屏Activity的生命周期。现在给大家分析一下他切换时具体的生命周期是怎么样的:

1、新建一个Activity,并把各个生命周期打印出来

2、运行Activity,得到如下信息

onCreate-->
onStart-->
onResume-->

3、按crtl+f12切换成横屏时

onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->

4、再按crtl+f12切换成竖屏时,发现打印了两次相同的log

onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->
onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->

5、修改AndroidManifest.xml,把该Activity添加 Android:configChanges="orientation",执行步骤3

onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->

6、再执行步骤4,发现不会再打印相同信息,但多打印了一行onConfigChanged

onSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->
onConfigurationChanged-->

7、把步骤5的android:configChanges="orientation" 改成 android:configChanges="orientation|keyboardHidden",执行步骤3,就只打印onConfigChanged

onConfigurationChanged-->

8、执行步骤4

onConfigurationChanged-->
onConfigurationChanged-->

 总结:

1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次

2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次

3、设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法

 


总结一下整个Activity的生命周期

补充一点,当前Activity产生事件弹出Toast和AlertDialog的时候Activity的生命周期不会有改变

Activity运行时按下HOME键(跟被完全覆盖是一样的):onSaveInstanceState --> onPause --> onStop       onRestart -->onStart--->onResume

Activity未被完全覆盖只是失去焦点:onPause--->onResume

版权声明:本文为博主原创文章,未经博主允许不得转载,转载请注明出处:http://blog.csdn.net/sky_pjf。

Fragment和Activity生命周期以及横竖屏切换对生命周期的影响

Fragment生命周期图解,fragment和activity生命周期对比 1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,...
  • robertcpp
  • robertcpp
  • 2016年06月11日 10:04
  • 3321

Android屏幕横竖屏切换和生命周期管理的详细总结

Android屏幕横竖屏切换和生命周期管理的详细总结       一般的我们去切换屏幕方向都是不希望Activity被重新创建,这时就需要对一些属性进行设置,或者使用代码设置。        今天想...
  • wenzhi20102321
  • wenzhi20102321
  • 2017年04月01日 09:46
  • 2926

Android手机切换横竖屏时Activity的生命周期

今天看到一个关于Android手机切换横竖屏时Activity的生命周期的问题,在论坛先查阅了相关的文章,然后自己也测试了一下,发现结果有些不同。我测试的模拟器是Android4.0,自己的手机是An...
  • Captian_JHL
  • Captian_JHL
  • 2015年10月16日 23:37
  • 1074

安卓横竖屏切换时候Activity的生命周期

一定要亲自动手测试,切勿轻信网上的复制粘贴。
  • pingfangx
  • pingfangx
  • 2016年08月03日 14:01
  • 317

横竖屏切换时候Activity的生命周期

曾经遇到过一个面试题,让你写出横屏切换竖屏Activity的生命周期。现在给大家分析一下他切换时具体的生命周期是怎么样的: 1、新建一个Activity,并把各个生命周期打印出来 2、运行Acti...
  • AndyTsui
  • AndyTsui
  • 2013年09月14日 23:06
  • 445

Android横竖屏切换时候的activity的生命周期

1) 新建一个activity,并把各个生命周期打印出来 2) 运行activity,得到如下信息: onCreate()à onStart()à onResume()à ...
  • wds1181977
  • wds1181977
  • 2014年03月27日 11:08
  • 671

横竖屏切换时候Activity的生命周期

横竖屏切换时候Activity的生命周期 标签: android面试 2011-07-11 17:04 750人阅读 评论(0) 收藏 举报 本文章已收录于:...
  • it_guang
  • it_guang
  • 2016年12月02日 13:17
  • 86

横竖屏切换时候Activity的生命周期的总结--绝对全面

曾经遇到过一个面试题,让你写出横屏切换竖屏Activity的生命周期。现在给大家分析一下他切换时具体的生命周期是怎么样的: 1、新建一个Activity,并把各个生命周期打印出来 2、运行Acti...
  • JJMM2009
  • JJMM2009
  • 2015年11月30日 15:36
  • 413

横竖屏切换Activity生命周期

  • 2013年12月22日 15:44
  • 252KB
  • 下载

横竖屏切换时候的生命周期以及configchanges介绍

activity生命周期的介绍以及configchanges属性的使用和onSaveInstanceState()的触发执行...
  • qq_33234564
  • qq_33234564
  • 2016年11月22日 15:19
  • 497
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:横竖屏切换时候Activity的生命周期
举报原因:
原因补充:

(最多只允许输入30个字)