LeakCanary DialogFragment обнаружение утечек - PullRequest
0 голосов
/ 07 ноября 2018

Каждый раз, когда я пытаюсь показать DialogFragment, я получаю утечки памяти.

Вот так выглядит мой тестовый диалог (взятый со страницы разработчиков Android):

public class TestDialog extends DialogFragment {

    public static TestDialog newInstance(int title) {
        TestDialog frag = new TestDialog();
        Bundle args = new Bundle();
        args.putInt("title", title);
        frag.setArguments(args);
        return frag;
    }

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        int title = getArguments().getInt("title");

        return new AlertDialog.Builder(getActivity())
                .setIcon(R.drawable.ic_action_about)
                .setTitle(title)
                .setPositiveButton(R.string.ok,
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int whichButton) {
                                //((FragmentAlertDialog)getActivity()).doPositiveClick();
                            }
                        }
                )
                .setNegativeButton(R.string.cancel,
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int whichButton) {
                                //((FragmentAlertDialog)getActivity()).doNegativeClick();
                            }
                        }
                )
                .create();
    }
}

Я запускаю его со следующим кодом, который выполняется при нажатии кнопки:

DialogFragment newFragment = TestDialog.newInstance(R.string.company_title);
newFragment.show(getFragmentManager(), "dialog");

И вот лучшая часть: enter image description here

Как решить эту утечку (или, по крайней мере, скрыть ее, потому что canaryleak становится действительно раздражающим со всеми этими уведомлениями)?

...