Проблема с утечкой контекста Android ViewRootImpl

#android #memory-leaks #leakcanary

#Android #утечки памяти #канал утечки

Вопрос:

Привет, я провожу анализ памяти для своего приложения. Для этого я пытаюсь определить утечку памяти моего приложения. Я получаю следующий тип утечки памяти.

 com.sample.activityname has leaked:
* static WindowManagerGlobal.sDefaultWindowManager
* ↳ WindowManagerGlobal.mRoots
* ↳ ArrayList.elementData
* ↳ array Object[].[4]
***ViewRootImpl.!(mContext)!**
***ContextThemeWrapper.!(mBase)!**
* ↳ activityname
  

Что может быть вероятной причиной утечек ViewRootImpl.mContext. Я использую leakcanary для выявления моих утечек. Также я уже прошелhttps://github.com/square/leakcanary/issues/94 . Но не в состоянии получить какой-либо намек на это.

Ответ №1:

Я заметил утечки памяти в моем приложении с дампами кучи, которые выглядели точно так же, как у вас. В конечном итоге я проследил это до моего использования ProgressDialog класса. Некоторые из моих действий отображали бы диалоговое окно выполнения с использованием, ProgressDialog.show() но вызывались finish() до того, как я вызывал dismiss() показанное диалоговое окно выполнения.

Возможно, вы отображаете какой-то тип ProgressDialog, AlertDialog или диалогового окна, которое не закрывается до того, как действие будет уничтожено? Надеюсь, это поможет!