0
点赞
收藏
分享

微信扫一扫

横竖屏切换,按home键,按返回键,锁屏与解锁屏幕,跳转透明Activity界面, 启动一个 Theme 为 Dialog 的 Activity,弹出Dialog时Activity的生命周期


资料

5 道刁钻的 Activity 生命周期面试题 Android 横竖屏切换

横竖屏切换

从Android3.2(API级别13)开始

  1. 不设置Activity的android:configChanges,或设置Activity的android:configChanges=“orientation”,或设置Activity的android:configChanges=“orientation|keyboardHidden”,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏的时候会调用一次.
  2. 配置android:configChanges=“orientation|keyboardHidden|screenSize”,才不会销毁activity,且只调用onConfigurationChanged的方法.

竖屏:
启动:onCreate->onStart->onResume
切换竖屏:
onPause->onSaveInstanceState->onStop->onDestroy
onCreate->onStart->onSaveInstanceState->onResume
如果配置这个属性:android:configChanges=“orientation|keyboardHidden|screenSize”
就不会在调用Activity的生命周期,只会调用onConfigurationChanged方法

HOME键的执行顺序

onPause->onStop->onRestart->onStart->onResume

BACK键的顺序

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

锁屏

锁屏时只会调用onPause(),而不会调用onStop方法,开屏后则调用onResume().

弹出Dialog

直接是通过WindowManager.addView显示的(没有经过AMS),所以不会对生命周期影响

启动theme位DialogActivity,跳转透明Activity

A.onPause->B.onCreate->B.onStart->B.onResume
(Activity不会回调onStop,因为只有在Activity切到后台不可见才会回调onStop)


举报

相关推荐

0 条评论