大家好,今天和大家分享一道关于activity生命周期的面试题,希望可以帮助大家更好的理解activity生命周期这一块,废话不多说,开干!
首先,咱们看一下官方给我们的activity生命周期图
那么activity生命周期为:
onCreate()-->onStart()-->onResume()-->onPause()-->onStop()-->onDestroy()
接下来看一下面试官一般会怎么问:
①ActivityA跳转ActivityB执行哪些生命周期
答:ActivityA:onPause ->ActivityB:( onCreate - > onStart - >onResume )- >ActivityA: onStop
当点击跳转之后,activityA的变化,如图
activityB的变化,如图
activityA的变化,如图
②ActivityB返回ActivityA执行哪些生命周期:
ActivityB:onPause - >ActivityA(onRestart -> onStart - > onResume) ->ActivityB:(onStop - >onDestory)
当点击跳转之后,activityB的变化,如图
activityA的变化,如图
activityB的变化,如图
③点击返回键,activity执行那些生命周期:
onPause()-->onStop()-->onDestroy
再次重启页面执行的生命周期:
--->onCreate-->onstart-->onResume
④点击home键时,activity生命周期的变化:
onPause-->onStop
再次重启页面执行的生命周期:
⑤切换横竖屏时,activity生命周期的变化:
当在清单文件中不配置android:configChanges="orientation"的 时候,activity会重建
当在清单文件中配置android:configChanges="orientation"的 时候,不会创建activity,如图
当在清单文件中配置android:configChanges="orientation|keyboardHidden"的 时候,不会创建activity,如图
当在清单文件中配置android:configChanges="orientation|keyboardHidden|screenSize"的 时候,不会创建activity,如上图
看了网上有些帖子说,横竖屏切换时activity生命周期不仅跟清单文件AndroidManifest.xml中android:configChanges属性有关,而且还跟手机系统的版本有关,因为在Android 4.0及其以上系统上,还跟程序的targetSdkVersion设置有关,大家可以参考这个帖子:https://blog.csdn.net/xiaoli100861/article/details/50855152 进行更深一步的研究,顺便说一下我的手机是Android 8.0的。
好啦,就总结到这儿啦!