首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >片段onStop()与onDetach()、onDestroy()还是onDestroyView()相同?

片段onStop()与onDetach()、onDestroy()还是onDestroyView()相同?
EN

Stack Overflow用户
提问于 2018-08-25 12:23:03
回答 2查看 1.9K关注 0票数 2

这是一个值得代表Android新开发人员提出的问题。

这个想法是为了深入理解为什么框架是这样写的。此外,开发人员面临着悬空的指针、非法状态和类似的运行时崩溃,而且他们也不知道为什么会发生这种情况。

程序员现在大量使用回调和工厂模式。委托类对象的使用减少了对单例类的需求,也减少了C、C++等语言中对多重继承的需求。

当开发人员了解组件之间基于Handler的消息传递时,他们会感到兴奋。

这些方法中哪一种更可靠,可以知道片段的上下文不应再被其组成部分所使用,也不应该被用于养育它的活动之外:

  1. onStop()
  2. onDetach()
  3. onDestroyView()
  4. onDestroy()

诚挚的问候。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-25 12:42:45

我正在跟踪所有这些方法,以停止使用片段的getView()。我从逻辑上认为,onDestroy()是实现这一目的的最合适的方法。

在这个答案中,我使用跟踪器的方式是相同的:https://stackoverflow.com/a/52017405/787399

这种继承策略极大地帮助和改善了ActivityFragments生命周期的意义。事实上,它是如此强大,以至于您可以拥有那些不隐式提供的特性:就像您可以处理系统回压(在BaseActivity in onBackPressed()方法中进行管理),只要在Fragment上按back,就可以阻止back pressed event调用,直到满足某些条件,或者放置一个OK_Cancel confirmation alert,这样无论您是否真正想退出当前片段。

快乐编码:-)

票数 1
EN

Stack Overflow用户

发布于 2018-08-25 12:39:52

请浏览此链接以了解片段的生命周期。

它说,虽然您当前的片段(可以在Application中使用getter和setter进行跟踪)处于垂死阶段,但getView()getActivity()将返回null。因此,您不应该使用这些方法,并且对相关的生命周期回调保持谨慎(同样可以使用抽象BaseFragment/BaseActivity常规具体片段和活动类的布尔getter和setter来跟踪)。

来源

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

https://stackoverflow.com/questions/52017291

复制
相关文章

相似问题

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