我有这样的代码。
Class MyActivity {
private lateinit var downLoadQRHandler: DownloadQRHandler
...
fun someFun()
{ val model = getDataModelSomeOtherFun()
downLoadQRHandler = DownloadQRHandler(downloadQRModel, this)
}
}
当活动传递给依赖项之一时?
会导致内存泄漏吗? 起初我想,是的,会的。但我认为,在活动被破坏后,此引用 downLoadQRHandler 将自动无效。 MyActivity 实例将被垃圾回收。
为了安全起见,我想在 onDestroy() 中添加这个
override fun onDestroy() {
super.onDestroy()
downLoadQRHandler = null
}
添加 ..= null 代码有什么好处吗?
活动类在 MemoryProfiler 和 LeakCanary 中被标记。内存泄漏可能还有其他原因。
如果没有看到其他代码,就无法回答你。如果“downLoadQRHandler”在其他地方使用并保留在内存中,是的,这可能是内存泄漏,特别是如果 DownloadQRHandler() 构造函数(接受 Activity)保存 Activity 以供以后使用。