Robię trochę pracy w tle i pokazuję DialogFragment, gdy to robię. Po wykonaniu mojej pracy i wywołaniu odpowiedniego wywołania zwrotnego zamykam okno dialogowe. Kiedy robię, mam awarię spowodowaną przez NPE w android źródła, tutaj:Błąd otwierania okna dialogowego przy użyciu wyjątku NullPointerException
void dismissInternal(boolean allowStateLoss) {
if (mDialog != null) {
mDialog.dismiss();
mDialog = null;
}
mRemoved = true;
if (mBackStackId >= 0) {
getFragmentManager().popBackStack(mBackStackId,
FragmentManager.POP_BACK_STACK_INCLUSIVE);
mBackStackId = -1;
} else {
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.remove(this);
if (allowStateLoss) {
ft.commitAllowingStateLoss();
} else {
ft.commit();
}
}
}
specjalnie na linii: FragmentTransaction ft = getFragmentManager().beginTransaction();
Ma fragment/działanie z którego odwołujesz okno dialogowe znikające z tła, tzn. wywoływana jest jego metoda 'onPause'? W tym przypadku spodziewałbym się problemów i starałbym się obejść takie problemy, upewniając się, że nie robię takich rzeczy jak zamykanie okien dialogowych, dopóki nie zostanie wywołany 'onResume' (poprzez implementację metody paused handler notowanej [tutaj] (http://stackoverflow.com/questions/7992496/how-to-handle-asynctask-onpostexecute-when-paused-to-avoid-illegalstateexception) lub [tutaj] (http://stackoverflow.com/questions/8040280/how-to -handle-handler -messages-when-activity-fragment-is-paused) – PJL
@PJL Interesujący punkt, powinienem się zalogować Pause.To ma sens, że onPause zostanie wywołany.Pokażę twojemu podejściu strzał – LuxuryMode