我需要帮助来追踪泄漏金丝雀检测到的泄漏
我已将此class作为库的一部分,将Views
保存为图像,leak canary
检测到泄漏,我不确定如何修复或了解。在我的演示应用程序中检测到泄漏,该应用程序包含带有保存按钮的1 Activity
。单击按钮并退出应用程序时,检测发生
答案 0 :(得分:0)
变化:
private class AsyncSaveBitmap extends AsyncTask<Void, Void, Void> implements MediaScannerConnection.OnScanCompletedListener
为:
static private class AsyncSaveBitmap extends AsyncTask<Void, Void, Void> implements MediaScannerConnection.OnScanCompletedListener
(即添加static
关键字)
这需要对onScanCompleted()
实施进行一些后续更改,这些更改目前依赖AsyncSaveBitmap
不是static
的事实,调用您的活动的responseListener()
方法。
目前,只要您的任务仍在运行,您的活动就会泄露,因为:
您将AsyncSaveBitmap
传递给MediaScannerConnection.scanFile()
作为回调对象
回调对象将由MediaScannerConnection
代码保留,直至扫描完成
AsyncSaveBitmap
类不是static
,因此它包含一个隐式引用,返回外部Java类,在本例中是您的活动