关于Activity各种情况下的生命周期

基本的生命周期,

--onCreate() (Activity创建时调用 )
--onStart()(可见未获取焦点,无法与之交互 )
--onResume()(可见已获取焦点,可与之交互 )
--onPause()(可见,失去焦点 )
--onStop()(不可见 )
--onRestart()(Activity重启)
--onDestroy()(Activity销毁)

--onSaceInstanceState可能会被回收的时候调用,与上面的先后顺序各个Android版本不同
--onResotreInstanceState没有被回收的话就不会调用
--onConfigurationChanged

各种情况下的生命周期

1.正常通过startActivity或者桌面快捷方式直接启动直到可见可正常交互
onCreate()--onStart()--onResume()
2.正常销毁,(在onResume之后),执行finish()方法或者点击回退按钮
onPause()--onStop()--onDestroy()
3.在onCreate()里调用finish()
onCreate--onDestroy()
4.在onStart()里调用finish()
onCreate--onStart--onStop--onDestroy
5.正常启动后按下Home键(API4.4onSaveInstanceStateonPause之后)
onPause--onSaveInstanceState--onStop
6.按下Home键没回收之前再点开
onRestart--onStart--onResume
7.出现Dialog
不调用任何生命周期
8.出现Dialog主题的Activity
onPause--onSaveInstanceState
9.去掉dialog
onResume
10.在manifest文件设置android:configChanges属性orientation|keyboard|screenSize
切换横/竖屏
onConfigurationChanged
11..在manifest文件设置android:configChanges属性orientation|keyboard
在4.4以上横屏
onPause--onSaveInstanceState--onStop--onCreate()--onStart()--onResume()
4.4以下(不一定,跟是否改变了屏幕大小有关)横屏
onConfigurationChanged
竖屏4.4以下
onConfigurationChanged
竖屏4.4以上
onPause--onSaveInstanceState--onStop--onCreate()--onStart()--onResume()
11..在manifest文件设置android:configChanges属性orientation
切横屏
onPause--onSaveInstanceState--onStop--onCreate()--onStart()--onResume()
切竖屏4.4以上一次2.3以下2次
onPause--onSaveInstanceState--onStop--onCreate()--onStart()--onResume()
onPause--onSaveInstanceState--onStop--onCreate()--onStart()--onResume()
12.设置launchMode的情况下,如果只是把Acitvity调回到前台
会执行onNewIntent()

你可能感兴趣的:(关于Activity各种情况下的生命周期)