在阅读the example时,我注意到作者在Runnable task中创建了MyActivity。如果我关闭活动,则系统将无法对其进行垃圾回收,因为可运行对象包含对MyActivity的隐式引用,对吗?只要可运行的工作,该活动就将继续存在。

如果我错了,请纠正我。

最佳答案

似乎正确。

从您的链接(尽管谈论的是AsyncTask,而不是匿名的Runnable):


如果它是您的Activity / Fragment的内部类,则它隐含对它的引用,这是一种不好的做法,因为Activity / Fragment可以在配置更改时被销毁,但是它们会在工作线程处于活动状态时保留在内存中;如果它被声明为独立或静态内部类,并且您正在使用对Context的引用来更新视图,则应始终检查它是否为null”

10-07 12:22