一,Activity生命周期
相信不少朋友也已经看过这个流程图了,也基本了解了Activity生命周期的几个过程,我们就来说一说一些常见操作的生命周期执行情况吧
(1) 启动Activity:onCreate()->onStart()->onResume->Activity进入运行状态
(2) 被其他Activity,窗口覆盖或锁屏:onPause()->暂停当前Activity状态
(3)
当前Activity由被覆盖状态回到前台或解锁屏:
onResume()->再次进入运行状态
(4)
当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台:onPause()->onStop->不可见状态
(5) 回退到不可见状态的Activity:
onRestart()->onStart()->onResume->再次进入运行状态
(6)
当前Activity处于被覆盖状态或者后台不可见状态,即第2步和第4步,系统内存不足,杀死当前Activity,而后用户退回当前Activity:onCreate()->onStart()->onResume()->进入运行状态
(7)
用户finish退出当前Activity:onPause()->onStop()->onDestory()->结束当前Activity
扩展一些:
1 . onWindowFocusChanged:在
Activity窗口获得或失去焦点时被调用,在onResume与onPause后调用
onResume()->
onWindowFocusChanged()->运行状态->onPause->
onWindowFocusChanged()
比如onCreate中Window对象没有初始化完成,一些动态计算控件大小,动画加载可能报错,所以可以将加载相关的代码放在这个方法中执行
2 .
onSaveInstanceState与
onRestoreInstanceState:
(1)在Activity被覆盖或退居后台之后,系统资源不足将其杀死,
onSaveInstanceState
会被调用,回退到此Activity时,调用
onRestoreInstanceState
(2)在用户改变屏幕方向时,
系统先销毁当前的Activity,然后再重建一个新的,调用此方法保存一些临时数据
;
(3)在当前Activity跳转到其他Activity或者按Home键回到主屏,自身退居后台时,此方法会被调用。系统调用此方法是为了保存当前窗口各个View组件的状态.
保存状态时调用顺序:运行状态->
onSaveInstanceState()->onPause()
恢复状态时调用顺序:onStart()->onRestoreInstanceState()->onResume
3.onConfigurationChange():当指定了android:configChanges="orientation"后,方向改变时onConfigurationChanged被调用,可以setContentView(R.layout.orientation_landscape),设置Activity不同的xml布局文件适配
二.Fragment 碎片
1.产生与介绍