如何从Android片段中的处理程序中删除回调

时间:2015-10-21 12:14:31

标签: android handler

我有一个Fragment,其中我使用了Handler,每隔60秒发送一次请求。这工作正常,直到我在同一个Fragment

但是,当我重定向到其他Activity中的其他FragmentActivity时,相同的Handler也在那里工作,我想要Handler来仅适用于Fragment,并希望在我使用其他ActivityFragment时将其删除。

我还在该片段的handler.removeCallbacks(runnableCode);函数上使用了onDetach

如果你有任何想法,请帮助我,非常感谢你。

1 个答案:

答案 0 :(得分:4)

您不应在removeCallbacks致电onDetach。您的Fragment可以隐身但仍未被销毁(暂停)。请注意onDetach之后调用onDestroy。根据文件:

  

当片段不再附加到其活动时调用。这个        在{@link #onDestroy()}之后调用。

使用removeCallbacks代替onPause

如果您想了解更多信息,请添加您的代码,我们会看到它无效的原因(但在将呼叫更改为removeCallbacks后)