片段onStop()与onDetach(),onDestroy()或onDestroyView()相同吗?

时间:2018-08-25 12:23:03

标签: android android-fragments android-context

这是代表Android中的新开发人员应该提出的问题。

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

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

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

这些方法中的哪一种更可靠,因为知道Fragment的上下文不应再由其组件使用,或者不再作为其父项的Activity使用:

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

最好的问候。

2 个答案:

答案 0 :(得分:1)

请通过此链接了解片段的生命周期

它表示当您当前的片段(您可以在Application扩展类中使用getter和setter进行跟踪)处于濒死阶段时,getView()getActivity()将返回null。因此,您不应该使用这些方法,并且要注意所涉及的生命周期回调(同样可以使用常规具体Fragments和Activity类的抽象BaseFragment / BaseActivity子类中的boolean getter和setter进行跟踪)。

source

答案 1 :(得分:1)

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

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

这种继承策略极大地帮助和改善了ActivityFragments生命周期的含义。我实际上已经非常强大,可以拥有未隐式提供的功能:就像您可以处理系统后退(在BaseActivity方法中,在onBackPressed()中管理),只要在{ {1}},然后您可以阻止Fragment调用,直到满足某些条件为止,或者放置back pressed event,以确定是否要退出当前片段。

快乐编码:-)