Я использую Дооснащение 2, чтобы сделать запрос POST на мой сервер внутри фрагмента, например:Как правильно обрабатывать Dialog.dismiss() внутри фрагмента с помощью Дооснащения 2
Call<MyResponse> call = apiService.myPost(params);
call.enqueue(myCallback);
mProgress = ProgressDialog.show(getActivity(), "Working", "Working"", true);
Я хочу уволить ProgressDialog когда запрос закончен, как вы можете увидеть здесь:
class myCallback {
onResponse() {
mProgress.dismiss();
}
onFailture() {
mProgress.dismiss();
}
}
Однако этот подход не работает нормально, так как пользователь может вращать или оставить текущую активность, что приводит к этой ошибке:
Fatal Exception: java.lang.IllegalArgumentException: View=com.android.internal.policy.impl.PhoneWindow$DecorView{1ec6c6d0 V.E..... R.....ID 0,0-513,242} not attached to window manager
at android.view.WindowManagerGlobal.findViewLocked(WindowManagerGlobal.java:396)
at android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:322)
at android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:116)
at android.app.Dialog.dismissDialog(Dialog.java:341)
at android.app.Dialog.dismiss(Dialog.java:324)
Как я могу правильно отменить диалог в этой ситуации?