azhon / AppUpdate

Android App update library. Android版本更新库,简单、轻量、可随意定制
Apache License 2.0
2.29k stars 336 forks source link

内存泄漏 #99

Closed hzq19920817 closed 3 years ago

hzq19920817 commented 4 years ago

1601214758(1) 建议凡是引用了context的地方,在DownloadManager.release()里面都释放掉

hzq19920817 commented 4 years ago

![Uploading 1601214758(1).jpg…]()

azhon commented 4 years ago

下载完成会释放的呀DownloadService#releaseResources(),DownloadManager#release()

hzq19920817 commented 4 years ago

我这边是这样的,这边在mainactivity里面提示更新,下载成功没有安装,然后继续操作APP,有一个recreate()操作,之后就提示了这个内存泄漏,然后我就在recreate()之前执行了manager.cancel();和manager.release();,但是还是提示updatedialog还持有context,现在我这边是同过反射拿到了context手动为null了,然后configuration.getOnDownloadListener().clear(),stopService(),现在就没有泄漏了。。

azhon commented 4 years ago

那我们这边就是下载完成把getOnDownloadListener() 这里清空一下应该就行了

hzq19920817 commented 4 years ago

应该是的,不过也提供了getOnDownloadListener()我们也可以手动清,服务也可以手动停止,不过这个updatedialog里面的context我也不知道为什么持有,按理说用的是manager里面的静态变量,调用了release()应该是为null了

azhon commented 4 years ago

那就那里加个弱引用

hzq19920817 commented 4 years ago

可以的,我这边没什么问题了,辛苦了

azhon commented 3 years ago

可以使用3.0.1版本了