Fragment的生命周期和拥有它的activity密切相关,它拥有一些和标准activity一样的生命周期,比如onResume(),还有一些方法和activity、UI生成有关。
fragment到resumed state的生命周期核心序列方法如下:
- onAttach(Activity) 当activity 和 fragment 关联在一起的时候会调用一次。
- onCreate(Bundle) 做fragment的初始创建工作。
- onCreateView(LayoutInflater, ViewGroup, Bundle) 创建并且返回fragment的view。
- onActivityCreated(Bundle) 告诉fragment,activity 已经完成了自己的Activity.onCreate()。
- onViewStateRestored(Bundle) 告诉fragment ,view hierachy 的所有的saved state 被复原了。
- onStart() 使fragment 对用户可见(它的activity已经处于started)。
- onResume() 使fragment 可以和用户交互 (它的activity已经处于resumed)。
如果fragment 不再被使用,它会执行以下反序回调:
- onPause() fragment 不再能和用户交互,因为它的activity处于paused 或者 fragment的操作被修改。
- onStop() fragment 不再对用户可见,因为它的activity处于stopped 或者 fragment的操作被修改。
- onDestroyView() 允许fragment清除与View相关联的资源。
- onDestroy() 被调用用来做fragment state最后的清理工作。
-
onDetach() 不再和activity关联之前被立即调用。
调用循序如下图所示:
fragment_lifecycle.png
注意:所有的回调都是在主线程中被调用的!
网友评论