首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在片段的onDestroy方法中调用活动的方法安全吗?

在片段的onDestroy方法中调用活动的方法安全吗?
EN

Stack Overflow用户
提问于 2016-05-21 18:57:52
回答 2查看 2.3K关注 0票数 1

我有Activity MyActivityFragment MyFragmentActivityonDestroy()方法从super.onDestroy()开始。

从日志语句和查看Android源代码也可以看出,Activity的超级onDestroy()方法调用了FragmentonDestroy()方法。然后,当FragmentonDestroy()方法完成时,ActivityonDestroy()方法的其余部分将被执行。因此,我认为< code >D16在Fragments onDestroy()方法完成后才被销毁。

这让我认为,从MyFragmentonDestroy()方法中,我可以安全地调用MyActivity上的快速方法,也可以依赖MyActivity的属性。我永远不会这样做,但假设情况下,我可以依赖`MyActivity中的“`MyActivity”中的属性和方法吗?

文档对ActivityonDestroy()方法的描述,“您在活动被破坏之前收到的最后调用”,我的意思是在此方法返回之后,Activity将被销毁。

FragmentonDestroy()方法文档并没有真正说明Activity是否启动了销毁过程。

EN

回答 2

Stack Overflow用户

发布于 2016-05-23 13:11:14

在您的ActivityonDestroy()方法中使用宿主Fragment是完全安全的。

Fragment生命周期的简化版本如下所示:

  • onAttach(Context):片段被附加到主机(通常是Activity)
  • onCreate(Bundle)
  • onCreateView(LayoutInflater, ViewGroup, Bundle)
  • onStart()
  • onResume() ..。
  • onPause()
  • onStop()
  • onDestroyView()
  • onDestroy()
  • onDetach()Fragment与其主机分离。

因此,在从onCreate(Bundle)onDestroy()的整个生命周期中,您可以使用和引用托管Activity,而不会出现任何问题。

票数 1
EN

Stack Overflow用户

发布于 2016-05-21 19:23:24

依赖onDestroy()是不安全的,请检查表格

活动可以在onPause()之后终止。

当片段反映主机活动的生命周期时,它也会被杀死。

但假设

那么,应该在主机活动之前调用onDestroy()

此外,您也可以检查完整的Android片段&活动生命周期

在api 23中考虑新的权限处理程序。用户可以在运行时撤销权限,您的进程将以与“低内存状态”相同的方式终止。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37366905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档