Fragment总结

来源:互联网 发布:淘宝云客服怎么报名 编辑:程序博客网 时间:2024/05/17 04:05

fragment是依附于Activity而存在的,fragment的生命周期总结:

首先,Activity底部有三个button分别是tab1,tab2,tab3,用来切换fragment1,fragment2,fragment3.默认是fragment1

启动Activity执行的生命周期是:

按执行顺序:

Activity:      oncreate()

fragment1: onAttach()

                     onCreate()

                     onCreateView()

                     onActivityCreated()

Activity:        onStart()

fragment1:   onStart()

Activity:        onResume()

fragment1:   onResume()




点击tab2切换fragment1到fragment2(使用replace方法切换):

fragment1:onPause()

fragment1:  onStop()

fragment1:  onDestroyView()

fragment1:  onDestroy()

fragment1:  onDettach()

fragment2:  onAttach()

fragment2:  onCreate()

fragment2:  onCreateView()

fragment2:  onActivityCreated()

fragment2:  onStart()

fragment2:  onResume()


按返回键:

fragment2:onPause()

Activity:        onPause()

fragment2:   onStop()

Activity:        onStop()

fragment2:   onDestroyView()

fragment2:   onDestroy()

fragment2:   onDettach()

Activity:        onDestroy()


在点击tab1切换fragment1到fragment2时,再replace之后执行fragmentTransaction.addToBackStack(null);把fragment1放入回收栈中,此时生命周期:

fragment1:onPause()

fragment1:  onStop()

fragment1:  onDestroyView()

fragment2:  onAttach()

fragment2:  onCreate()

fragment2:  onCreateView()

fragment2:  onActivityCreated()

fragment2:  onStart()

fragment2:  onResume()


按返回键:
fragment2: onPause()
fragment2: onStop()
fragment2: onDestroyView()
fragment2: onDestroy()
fragment2: onDettach()
fragment1: onCreateView()
fragment1: onActivityCreated()
fragment1: onStart()
fragment1: onResume()

如果初始化的时候把fragment1,和fragment2都add上,通过hide和show来实现切换的话启动的生命周期:

Activity:      onCreate()

fragment1: onAttach()

fragment1: onCreate()

fragment1: onCreateView()

fragment1: onActivityCreate()

fragment2: onAttach()

fragment2: onCreate()

fragment2: onCreateView()

fragment2: onActivityCreated()

Activity:      onStart()

fragment1: onStart()

fragment2: onStart()

Activity:      onResume()

fragment1: onResume()

fragment2: onResume()


注:当使用hide和show进行切换是生命周期不在执行了。


按返回键:

fragment1:onPause()

fragment2:  onPause()

Activity:       onPause()

fragment1:  onStop()

fragment2:  onStop()

Activity:       onStop()

fragment1:  onDestroyView()

fragment1:  onDestroy()

fragment1:  onDettach()

fragment2: onDestroyView()

fragment2: onDestroy()

fragment2: onDettach()

Activity:      onDestroy()





0 0
原创粉丝点击