曾经遇到过一个面试题,让你写出横屏切换竖屏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
当然,开发完APP也是需要进行全方位的检测:
http://www.ineice.com
分享到:
相关推荐
中国经济周期及波动浅析:1978-2005,单晓燕,,本文运用剩余法和HP滤波法对1978年—2005年中国经济周期波动进行分析,并进一步从通货膨胀,GDP构成两方面对波动原因进行分析,得出�
浅析:IP2000型压铸机控制与维修pdf,浅析:IP2000型压铸机控制与维修
浅析:焊接机器人的应用与发展doc,提供“浅析:焊接机器人的应用与发展”免费资料下载,主要包括焊接基础知识、焊接机器人的发展、焊接机器人的发展趋势等内容,可供学习使用
上海各区置业浅析:“上海房地产市场”系列之一.pdf
教材改革浅析:《液压与气压传动》.docx
工业互联网安全浅析:边缘端点的主动防护.pdf
浅析:电气控制系统主要功能及系统组成
浅析:视频监控高清图像编码的四个标准.docx
浅析:代数、几何方法论及数学三大核心领域
浅析:关于快递公司仓配一体化的几点思考.docx
【浅析:图像修复中的TV模型】 原文地址:http://blog.csdn.net/hujingshuang/article/details/44257179
支付宝蚂蚁森林浅析:科技,是这个时代最大的公益 .doc
上海各区置业浅析:“上海房地产市场”系列之一
【浅析:图像修复中的TV模型】 原文地址:http://blog.csdn.net/hujingshuang/article/details/44257179
互联网时代下的新闻娱乐化现象浅析:《娱乐至死》新解读.pdf
2020年第二季度上海房地产市场浅析:行情全面复苏,市场依然理性
2020年第二季度上海房地产市场浅析:行情全面复苏,市场依然理性.pdf
区域金融发展与经济增长关系浅析:以宁波为例,缪小眉,贺刻奋,本文首先对宁波金融发展现状进行了概括;其次对宁波1989——2006金融发展与经济增长进行实证分析,并对宁波金融发展实证中存在的有�
浅析基于用户体验生命周期的产品APP界面设计.pdf