在我的应用中,我使用了媒体播放器服务。当我调用替换片段时,我想要杀死该服务。看看Stackoverflow和Androids网站上的答案,我没有看到一个直接的答案。一旦调用了替换片段,就会调用片段生命周期的哪些部分。
我尝试了onDestroy和onDetach,但这些都没有被调用。适当放置的地方在哪里?
谢谢
答案 0 :(得分:1)
我会把它放到onStop()
回调中。
可能不会调用<强>停止强>
片段不可见。主持人的活动都是 停止或片段已从活动中删除但已添加 到后面的堆栈。停止的片段仍然存在(所有状态和 会员信息由系统保留)。但是,它不是 用户可见的时间更长,如果活动是,则会被杀死 杀死。
onDestroy()
和onDetach()
回调
你可以看到Fragments lifecycle。这可能会有所帮助。
重要的是:
.replace
删除现有片段并添加新片段。
替换添加到容器的现有片段。这与使用相同的containerViewId添加的所有当前添加的片段调用remove(Fragment),然后使用此处给出的相同参数添加(int,Fragment,String)基本相同。
这意味着,onCreate
,onCreateView
,onActivityCreated
,onResume
,现在您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