0

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

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

4

1 回答 1

0

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

使用服务

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

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

于 2016-07-01T20:36:31.693 回答