Android在片段替换上杀死服务(替换片段的生命周期)

时间:2016-06-16 11:10:37

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

在我的应用中,我使用了媒体播放器服务。当我调用替换片段时,我想要杀死该服务。看看Stackoverflow和Androids网站上的答案,我没有看到一个直接的答案。一旦调用了替换片段,就会调用片段生命周期的哪些部分。

我尝试了onDestroy和onDetach,但这些都没有被调用。适当放置的地方在哪里?

谢谢

1 个答案:

答案 0 :(得分:1)

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

  

<强>停止
  片段不可见。主持人的活动都是   停止或片段已从活动中删除但已添加   到后面的堆栈。停止的片段仍然存在(所有状态和   会员信息由系统保留)。但是,它不是   用户可见的时间更长,如果活动是,则会被杀死   杀死。

可能不会调用

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

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

  

替换添加到容器的现有片段。这与使用相同的containerViewId添加的所有当前添加的片段调用remove(Fragment),然后使用此处给出的相同参数添加(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