关闭Android Looper

时间:2016-07-01 18:39:34

标签: android android-looper

似乎Looper(至少是使用HandlerThread创建的那个)永远不会被垃圾收集,即使没有被其他代码引用。我知道quit()quitSafely()方法,但在我的应用程序中,我不确定谁将负责调用其中一种方法。

在具有多个活动的应用程序中关闭Looper的正确方法是什么?在此Handler上创建的Looper生命周期与其中一个活动的生命周期不同。它不能是onDestroy()任何活动。如果我没有关闭它并且该过程不会被操作系统杀死 - 可能会在下一个应用程序中创建新的Looper"启动"而且这个会泄漏。或者,创建一次,存储在静态字段中,永不退出,让它泄漏一次。到目前为止,最后一个似乎是最安全和最容易实施的。

1 个答案:

答案 0 :(得分:0)

  

在具有多个活动的应用程序中关闭Looper的正确方法是什么,以及在此Looper上创建的处理程序的生命周期与某些活动的生命周期不同

使用Service

它拥有自己的Looper,自己的生命周期,可以像活动一样在主线程中工作。

您可以使用LocalBroadcastManager从中获取回电。