Activity和Fragment生命周期的理解

![activity_lifecycle.png](https://upload-images.jianshu.io/upload_images/140633-99fdb4956f19f097.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ![fragment_lifecycle.png](https://upload-images.jianshu.io/upload_images/140633-5d0b6d1d8ba51a0d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ![activity_fragment_lifecycle.png](https://upload-images.jianshu.io/upload_images/140633-968dedf205657098.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 我个人对此处生命周期的理解是对Activity或者Fragment在app中不同状态的描述,比如创建,对用户可见,对用户可以操作等等。这些内容在其他的博客中大多有详细描述,这里补充下官方教程中Fragment与Activity生命周期一致的部分。如果不注意这个内容容易出现空指针的错误。 https://developer.android.com/guide/components/fragments?hl=zh-cn ###与 Activity 生命周期协调一致 片段所在的 Activity 的生命周期会直接影响片段的生命周期,其表现为,Activity 的每次生命周期回调都会引发每个片段的类似回调。 例如,当 Activity 收到 onPause() 时,Activity 中的每个片段也会收到 onPause()。 不过,片段还有几个额外的生命周期回调,用于处理与 Activity 的唯一交互,以执行构建和销毁片段 UI 等操作。 这些额外的回调方法是: onAttach() 在片段已与 Activity 关联时调用(Activity 传递到此方法内)。 onCreateView() 调用它可创建与片段关联的视图层次结构。 onActivityCreated() 在 Activity 的 onCreate() 方法已返回时调用。 onDestroyView() 在移除与片段关联的视图层次结构时调用。 onDetach() 在取消片段与 Activity 的关联时调用。 图 3 图示说明了受其宿主 Activity 影响的片段生命周期流。在该图中,您可以看到 Activity 的每个连续状态如何决定片段可以收到的回调方法。 例如,当 Activity 收到其 onCreate() 回调时,Activity 中的片段只会收到 onActivityCreated() 回调。 一旦 Activity 达到恢复状态,您就可以随意向 Activity 添加片段和移除其中的片段。 因此,只有当 Activity 处于恢复状态时,片段的生命周期才能独立变化。 不过,当 Activity 离开恢复状态时,片段会在 Activity 的推动下再次经历其生命周期。

你可能感兴趣的:(Activity和Fragment生命周期的理解)