TestFragment: onInflate—填充fragment
TestFragment: onAttach—fragment依附activity
TestActivity: onAttachFragment—activity确认fragment依附
TestFragment: onCreate—创建fragment
TestFragment: onCreateView—创建fragment视图
TestFragment: onViewCreated—fragment视图创建完成
TestActivity: onCreate—创建activity
TestActivity: onStart—启动activity
TestFragment: onActivityCreated—fragment确认activity已创建
TestFragment: onViewStateRestored—还原视图状态?
TestFragment: onStart—启动fragment
TestActivity: onResume—渲染activity
TestActivity: onResumeFragments—activity通知fragment开始渲染
TestFragment: onResume—渲染fragment
TestActivity: onAttachedToWindow—activity和fragment实例创建和视图渲染完成,依附到窗口上
———-Click Back———-
TestActivity: onPause—activity进入暂停状态
TestFragment: onPause—fragment进入暂停状态
TestActivity: onStop—activity停止
TestFragment: onStop—fragment停止
TestActivity: onDestroy—activity销毁
TestFragment: onDestroyView—fragment视图销毁
TestFragment: onDestroy—fragment销毁
TestFragment: onDetach—fragment从activity中分离
TestActivity: onDetachedFromWindow—activity和fragment已完成分离和销毁,从窗口上分离
过程个人理解:
F(Fragmeng)先填充自己[onInflate],然后依附到A(Activity)[onAttach],依附完成由A确认依附成功[onAttachFragment],可能是因为有多个F依附同一个A的可能性,所以依附过程由F主动发起。依附完成后F开始依次创建自己[onCreate]、创建视图[onCreateView]、确认视图创建完成[onViewCreated]。
多个F同时存在的情况下,执行顺序为onInflate1—onAttach1—onAttachFragment(A)—onCreate1—onCreateView1—onViewCreated1—onInflate2—onAttach2—onAttachFragment(A)—onCreate2—onCreateView2—onViewCreated2
F全部创建完成后,A开始创建[onCreate],创建完成后启动自己[onStart]并通知所有F自己已创建完成。
F收到A创建完成[onActivityCreated]的通知后还原自己的状态[onViewStateRestored],而后启动自己[onStart],此时A和F已全部create完成并start。
之后A开始渲染并呈现在屏幕上[onResume],此过程完成后A通知所有F**[onResumeFragments]开始渲染自己[onResume],A和F全部渲染完成后A依附到窗口上[onAttachedToWindow]**。
———-Click Back———-
A先进入暂停状态[onPause],而后F依次进入暂停状态[onPause]。之后A进入停止状态[onStop],F也依次进入停止状态[onStop]。
A开始销毁[onDestory],F分别依次销毁视图[onDestoryView]、销毁自身[onDestory]、与A分离[onDetach]。全部完成后,A从窗口上分离[onDetachedFromWindow]。
Activity生命周期图
Fragment生命周期图