【发布时间】:2023-03-30 08:04:01
【问题描述】:
似乎Looper(至少是用HandlerThread 创建的那个)即使没有被其他代码引用,也永远不会被垃圾收集。我知道quit() 和quitSafely() 方法,但是在我的应用程序中我不确定谁将负责调用这些方法之一。
在具有多个活动的应用程序中关闭Looper 的正确方法是什么,并且在此Looper 上创建的Handlers 的生命周期与其中的活动不同。它不能是任何活动的onDestroy()。如果我不关闭它并且该进程没有被操作系统杀死 - 新的Looper 可能会在下一个应用程序“启动”时创建,并且这个会泄漏。或者,创建一次,存储在静态字段中,永不退出,让它泄漏一次。到目前为止,最后一个似乎是最安全和最容易实施的。
【问题讨论】: