我有Activity MyActivity和Fragment MyFragment。Activity的onDestroy()方法从super.onDestroy()开始。
从日志语句和查看Android源代码也可以看出,Activity的超级onDestroy()方法调用了Fragment的onDestroy()方法。然后,当Fragment的onDestroy()方法完成时,Activity的onDestroy()方法的其余部分将被执行。因此,我认为< code >D16在Fragments onDestroy()方法完成后才被销毁。
这让我认为,从MyFragment的onDestroy()方法中,我可以安全地调用MyActivity上的快速方法,也可以依赖MyActivity的属性。我永远不会这样做,但假设情况下,我可以依赖`MyActivity中的“`MyActivity”中的属性和方法吗?
文档对Activity的onDestroy()方法的描述,“您在活动被破坏之前收到的最后调用”,我的意思是在此方法返回之后,Activity将被销毁。
Fragment的onDestroy()方法文档并没有真正说明Activity是否启动了销毁过程。
发布于 2016-05-23 13:11:14
在您的Activity的onDestroy()方法中使用宿主Fragment是完全安全的。
Fragment生命周期的简化版本如下所示:
onAttach(Context):片段被附加到主机(通常是Activity)onCreate(Bundle)onCreateView(LayoutInflater, ViewGroup, Bundle)onStart()onResume()
..。onPause()onStop()onDestroyView()onDestroy()onDetach():Fragment与其主机分离。因此,在从onCreate(Bundle)到onDestroy()的整个生命周期中,您可以使用和引用托管Activity,而不会出现任何问题。
发布于 2016-05-21 19:23:24
依赖onDestroy()是不安全的,请检查表格。
活动可以在onPause()之后终止。
当片段反映主机活动的生命周期时,它也会被杀死。
但假设
那么,应该在主机活动之前调用onDestroy()。
此外,您也可以检查完整的Android片段&活动生命周期。
在api 23中考虑新的权限处理程序。用户可以在运行时撤销权限,您的进程将以与“低内存状态”相同的方式终止。
https://stackoverflow.com/questions/37366905
复制相似问题