关于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()

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容