activity、fragment生命周期

2017-08-16  本文已影响188人  小庄bb

下图详细解释了 Android 的 Activity 和 Fragment 的生命周期的各个方法,图片来源于 https://github.com/xxv/android-lifecycle

android_fragment_lifecycle

Activity 的生命周期

Activity 各阶段执行的一些方法

开启 Activity

onCreate()
onStart()
onResume()

Activity 失去焦点

onPause()
onStop()

Activity 重新获得焦点

onRestart()
onStart()
onResume()

关闭 Activity

onPause()
onStop()
onDestory()

横竖屏切换的生命周期

onDestory()
onCreate()
onStart()
onResume()

异常状态下的生命周期

1.系统配置改变(如屏幕旋转、键盘、语言等),会触发Activity重新创建,若想要这些改变时,不触发Activity重启,可以通过在AndroidManifest文件里设置android:configChangeds 属性。常用的有locale(语言区域)、orientation(屏幕方向)、keyboardHidden(键盘无障碍功能)、screenSize(当前可用屏幕尺寸发生了变化,旋转屏幕时会触发)。

android:configChanges="orientation|screenSize|keyboardHidden"

2.系统资源不足,Activity按照优先级从低到高(后台,可见非前台,前台)被销毁。

3.**异常状态下Activity的销毁与重建涉及到这两个方法:
3.1.onSaveInstanceState(@Nullable Bundle state)系统会调用它来保存状态,以便恢复。
3.2.onRestoreInstanceState(@NonNull Bundle state) 为系统恢复所用。

这两个方法的调用时机是onsaveInstanceState() 方法在onstop()方法之前调用。而不一定在onPause()之后。OnRestoreInstanceState()方法在onStart()方法之后,onResume方法之前。

Fragment生命周期


只有当Activity执行了onResume()方法时,Fragment的生命周期才能独立运转,其他时候都依赖于Activity生命周期而变化。

Fragment各阶段执行的一些方法:

Fragment被创建

Fragment可交互

Fragment进入“后台模式”

Fragment被销毁(或是它的宿主被销毁)


参考文章

14_Activity 和 Fragment 生命周期

上一篇 下一篇

猜你喜欢

热点阅读