Утечка памяти в классе SemClipboardManager - PullRequest
0 голосов
/ 21 мая 2019

Я использую LeakCanary для отладки утечек памяти в моем приложении, но обнаружена сильная утечка памяти (я думаю, что она генерируется в Acitvities, в которых есть EditText).Ниже приведен скриншот утечки.Я читал ветку в github LeakCanary, и кто-то рекомендовал следующий фрагмент кода в методе onDestory, но это тоже не сработало для меня.

  private void handleSemManagerMemoryLeak(Activity activity) {
        try {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && Build.MANUFACTURER.equals("samsung")) {
                Object systemService = activity.getSystemService(Class.forName("com.samsung.android.content.clipboard.SemClipboardManager"));
                Field mContext = systemService.getClass().getDeclaredField("mContext");
                mContext.setAccessible(true);
                mContext.set(systemService, null);
            }
        } catch (Exception e) { //ignored }
        }
    }

Отчет об утечке:

enter image description here

...