嗨,我正在为我的应用程序做记忆分析。为此,我试图识别我的应用程序的内存泄漏。我得到了以下类型的内存泄漏。
com.sample.activityname has leaked:
* static WindowManagerGlobal.sDefaultWindowManager
* ↳ WindowManagerGlobal.mRoots
* ↳ ArrayList.elementData
* ↳ array Object[].[4]
* ↳ **ViewRootImpl.!(mContext)!**
* ↳ **ContextThemeWrapper.!(mBase)!**
* ↳ activityname
ViewRootImpl.mContext泄漏的可能原因是什么?我用泄密金丝雀来识别我的泄密。此外,我已经通过了https://github.com/square/leakcanary/issues/94。但没能得到任何提示。
发布于 2020-11-19 01:28:17
我注意到我的应用程序中内存泄漏,堆转储看起来就像你的一样。我最终追溯到我对ProgressDialog
类的使用。我的一些活动将使用ProgressDialog.show()
显示进度对话框,但在显示进度对话框调用dismiss()
之前调用finish()
。
也许您正在显示某种类型的ProgressDialog、AlertDialog或对话框,它们在活动被销毁之前不会被取消?希望这能帮上忙!
https://stackoverflow.com/questions/55354006
复制相似问题