似乎Looper
(至少是使用HandlerThread
创建的那个)永远不会被垃圾收集,即使没有被其他代码引用。我知道quit()
和quitSafely()
方法,但在我的应用程序中,我不确定谁将负责调用其中一种方法。
在具有多个活动的应用程序中关闭Looper
的正确方法是什么?在此Handler
上创建的Looper
生命周期与其中一个活动的生命周期不同。它不能是onDestroy()
任何活动。如果我没有关闭它并且该过程不会被操作系统杀死 - 可能会在下一个应用程序中创建新的Looper
"启动"而且这个会泄漏。或者,创建一次,存储在静态字段中,永不退出,让它泄漏一次。到目前为止,最后一个似乎是最安全和最容易实施的。
答案 0 :(得分:0)
在具有多个活动的应用程序中关闭Looper的正确方法是什么,以及在此Looper上创建的处理程序的生命周期与某些活动的生命周期不同
使用Service。
它拥有自己的Looper,自己的生命周期,可以像活动一样在主线程中工作。
您可以使用LocalBroadcastManager从中获取回电。