[英]Lifecycle between activity and fragment
在调试中,我注意到onPause / onStart / onStop / onDestroy首先在片段上调用,然后在其活动上调用,而onResume相反-活动的onResume在其片段之前首先调用。
为什么活动和片段之间onPause / onStart / onStop和onResume的顺序不同?
09-28 15:26:40.869 30320-30320/testintent D/TestFragment﹕ onStart
09-28 15:26:40.869 30320-30320/testintent D/TestActivity﹕ onStart
09-28 15:26:40.869 30320-30320/testintent D/TestActivity﹕ onResume
09-28 15:26:40.869 30320-30320/testintent D/TestFragment﹕ onResume
09-28 15:26:40.869 30320-30320/testintent D/TestActivity﹕ onPostResume
只是在猜测停止时,您从内部到外部组件停止运行,而从外部到内部开始运行。
我还浏览了以下链接:
您可以引用Activity onStart()在Fragment的onActivityCreated()之前调用
http://developer.android.com/guide/components/fragments.html
在文档中也清楚地提到了它:片段的生命周期流(受其宿主活动影响)用数字表示。
在此图中,您可以看到活动的每个连续状态如何确定片段可以接收的回调方法。 例如,当活动收到其onCreate()回调时,该活动中的一个片段接收的内容最多不过是onActivityCreated()回调。
活动达到恢复状态后,即可自由添加和删除活动片段。 因此,只有在活动处于恢复状态时,片段的生命周期才能独立更改。
但是, 当活动离开恢复状态时,活动再次将片段推入其生命周期 。
希望这会有所帮助。
为什么onResume()顺序在您的活动/片段中很重要? 根据Google指南,片段应设计为可插入的组件,而不依赖于父活动。
我怀疑您可能对Fragment内的父活动有过多的依赖,因此可能需要重构。
理想情况下,片段的设计方式应使您无需修改即可将其插入任何活动。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.