【问题标题】:Android kill a service on fragment replace (lifecycle of replace fragment)Android 在片段替换时终止服务(替换片段的生命周期)
【发布时间】:2016-06-16 11:10:36
【问题描述】:

在我的应用中,我使用了媒体播放器服务。当我调用替换片段时,我想终止该服务。查看 Stackoverflow 和 Androids 网站上的答案,我还没有看到直接的答案。调用替换片段后,将调用片段生命周期的哪些部分。

我尝试了 onDestroy 和 onDetach,但这些都没有被调用。放在哪里比较合适?

谢谢

【问题讨论】:

    标签: android android-fragments android-service fragment-lifecycle


    【解决方案1】:

    我会把它放到onStop() 回调中。

    已停止
    片段不可见。要么主机活动已经 已停止或片段已从活动中删除但已添加 到后栈。停止的片段仍然存在(所有状态和 会员信息由系统保留)。然而,它不是 对用户可见的时间更长,如果活动被终止,将被杀死 被杀了。

    onDestroy()onDetach() 回调可能不会被调用。
    你可以看到Fragments lifecycle。这可能会有所帮助。

    重要的是:
    .replace 删除现有片段并添加新片段。

    替换已添加到容器中的现有片段。这本质上与为所有当前添加的片段调用 remove(Fragment) 相同,这些片段使用相同的 containerViewId 添加,然后使用此处给出的相同参数调用 add(int, Fragment, String)。

    也就是说,onCreateonCreateViewonActivityCreatedonResume 现在是可见的 Fragment

    我认为这些是与该问题相关的很好的主题:
    What is the lifecycle of a fragment when replace() is called?
    Replacing a fragment with another fragment inside activity group
    Fragment Replacing Existing Fragment
    Difference between add() & replace() with Fragment's lifecycle

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-21
      • 1970-01-01
      • 1970-01-01
      • 2014-07-28
      • 1970-01-01
      • 2020-08-10
      相关资源
      最近更新 更多