Activity的完整生命周期函数包括:
onCreate, onStart,onResume,onPause,onStop,onDestory
MainAcitivity打开SecondActivity:
从SecondActivity中返回MainActivity的时候:
MainActivity打开另一个Activity,这个DialogActivity是dialog风格的,没有全屏,所以MainActivity并没有完全不可见,因此不会调用onStoop方法。
从DialogActivity退出时:
Fragment的完整的生命周期函数包括:
onAttach,onCreate,onCreateView,onActivityCreated,onStart,onResume和onPause,onStop,onDestoryView,onDestory,onDetach。
以下介绍一下几种情况下,Fragment的生命周期函数和Activity的生命周期函数的调用顺序和时机。
MainActivity中 静态添加了一个LeftFragment(在layout中使用
可以看到Fragment的生命周期函数的调用,与Activity的生命周期函数基本一致并且依赖于Activity的生命周期函数。
Activity的onCreate函数,除了会调用Fragment的onCreate函数之外,还包括了onAttach和onCreateView。
Activity的onStart函数,除了会调用Fragment的onStart之外还会先调用onActivityCreated。
对照启动Activity时的流程,与Activity的onCreate对应Fragment的onAttach,onCreate,onCreateView 相对的是,Activity的onDestory对应Fragment的onDestoryView, onDestory, onDetach。
Fragment的生命周期函数中,onActivityCreated是没有配对的函数的。这样成对的记忆会比较好记。
MainActivity的layout中使用的是FrameLayout,在onCreate中使用FragmentManager开启事务,添加一个LeftFragment。
奇怪的是Fragment中原本跟Activity的onCreate对应的生命周期函数,都挪到了Activity的onStart之后执行了。
关闭Activity的情况,与静态添加的情况一致。
MainActivity中 静态添加了LeftFragment和RightFragment两个(在layout中使用
需要特殊注意的还是onActivityCreated的调用时机。