У меня есть пустой фрагмент диалога. Чтобы получить утечку памяти, я добавил библиотеку LeakCanary в мое приложение. Когда откройте фрагмент диалога с этими командами:
DialogFragment fragment = TabsFragment.newInstance();
fragment.setStyle(DialogFragment.STYLE_NO_FRAME, R.style.DialogFragments);
fragment.show(getSupportFragmentManager(), "MyFragment");
и закройте его, LeakCanary покажет мне эту ошибку:
ScreenShot
Я пытаюсь добавить setRetainInstance в OnCreate метод и view = null в onDestroyView . Но эта ошибка утечки памяти все еще показывает.
Это мой фрагмент:
public class TabsFragment extends DialogFragment {
private View view;
public static TabsFragment newInstance() {
return new TabsFragment();
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
}
@Override
public View onCreateView(LayoutInflater inflater, final ViewGroup container,
Bundle savedInstanceState) {
view = inflater.inflate(R.layout.my_fragment, container, false);
return view;
}
@Override
public void onDestroyView() {
super.onDestroyView();
dismiss();
view = null;
}
}
Как решить эту проблему?