Я пытаюсь понять утечку в моем приложении, но я не уверен, что это произошло.Утечка утечки утечки в InputMethodManager
LeakCanary говорит мне, что я могу игнорировать его. Это правильно?
01-06 12:04:56.580 6935-9159/com.mypackage D/LeakCanary: * LEAK CAN BE IGNORED.
01-06 12:04:56.580 6935-9159/com.mypackage D/LeakCanary: * com.mypackage.ui.map.MapComponentFragment has leaked:
01-06 12:04:56.580 6935-9159/com.mypackage D/LeakCanary: * GC ROOT android.view.inputmethod.InputMethodManager$1.this$0 (anonymous class extends com.android.internal.view.IInputMethodClient$Stub)
01-06 12:04:56.580 6935-9159/com.mypackage D/LeakCanary: * references android.view.inputmethod.InputMethodManager.mCurRootView
01-06 12:04:56.580 6935-9159/com.mypackage D/LeakCanary: * references com.android.internal.policy.impl.PhoneWindow$DecorView.mContext
01-06 12:04:56.580 6935-9159/com.mypackage D/LeakCanary: * references com.mypackage.ui.MainActivity.mFragments
01-06 12:04:56.580 6935-9159/com.mypackage D/LeakCanary: * references android.app.FragmentManagerImpl.mAdded
01-06 12:04:56.580 6935-9159/com.mypackage D/LeakCanary: * references java.util.ArrayList.array
01-06 12:04:56.580 6935-9159/com.mypackage D/LeakCanary: * references array java.lang.Object[].[0]
01-06 12:04:56.580 6935-9159/com.mypackage D/LeakCanary: * leaks com.mypackage.ui.map.MapComponentFragment instance
01-06 12:04:56.580 6935-9159/com.mypackage D/LeakCanary: * Reference Key: 0790f013-1c87-4d5f-8c10-db277187e3ce
01-06 12:04:56.580 6935-9159/com.mypackage D/LeakCanary: * Device: samsung samsung SM-N910C treltexx
01-06 12:04:56.580 6935-9159/com.mypackage D/LeakCanary: * Android Version: 5.1.1 API: 22 LeakCanary: 1.4-SNAPSHOT 2714152
01-06 12:04:56.580 6935-9159/com.mypackage D/LeakCanary: * Durations: watch=5085ms, gc=149ms, heap dump=2562ms, analysis=10313ms
Было обнаружено несколько утечек, вызванных этим фрагментом, но я их исправлю. Этот я не могу заставить его исчезнуть.
Любой ключ?
EDIT
Еще одна вещь, если я хочу, чтобы его игнорировать это должно быть достаточно?
.instanceField("android.view.inputmethod.InputMethodManager", "mCurRootView")
Но все еще показывает в LeakCanary
Видимо, это утечка в AndroidExcludeRef, но по-прежнему сообщается. https://github.com/square/leakcanary/issues/322
Существуют различные решения или обходные пути: https://issuetracker.google.com/issues/37043700#comment17 https://issuetracker.google .com/issues/36950938 https://stackoverflow.com/questions/5038158/main-activity-is-not-garbage-collected –