14_Activity 和 Fragment 生命周期

2017-08-14  本文已影响22人  Android_小生

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

android_fragment_lifecycle

Activity 的生命周期


Activity 各阶段执行的一些方法

开启 Activity

Activity 失去焦点

Activity 重新获得焦点

关闭 Activity

横竖屏切换的生命周期

异常状态下的生命周期

1.系统配置改变(如屏幕旋转、键盘、语言等),会出发 Activity 重新创建,若想要这些改变时,不触发 Activity 重启,可以通过在 AndroidManifest 文件里设置 android:configChanges 属性。常用的有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 被销毁(或它的宿主 Activity 被销毁)

上一篇下一篇

猜你喜欢

热点阅读