Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使用改型2更正片段内的handle Dialog.dismise()_Android_Dialog_Retrofit_Retrofit2_Dismiss - Fatal编程技术网

Android 如何使用改型2更正片段内的handle Dialog.dismise()

Android 如何使用改型2更正片段内的handle Dialog.dismise(),android,dialog,retrofit,retrofit2,dismiss,Android,Dialog,Retrofit,Retrofit2,Dismiss,我使用改造2在片段中向我的服务器发出POST请求,如下所示: Call<MyResponse> call = apiService.myPost(params); call.enqueue(myCallback); mProgress = ProgressDialog.show(getActivity(), "Working", "Working"", true); 但是,此方法无法正常工作,因为用户可能会旋转或离开当前活动,从而导致此错误: Fatal Exception: j

我使用改造2在片段中向我的服务器发出POST请求,如下所示:

Call<MyResponse> call = apiService.myPost(params);
call.enqueue(myCallback);

mProgress = ProgressDialog.show(getActivity(), "Working", "Working"", true);
但是,此方法无法正常工作,因为用户可能会旋转或离开当前活动,从而导致此错误:

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)

在这种情况下,如何正确地关闭对话框?

当片段从其活动中分离时,您应该关闭对话框,或者添加检查以查看片段是否仍然附着。下面的示例调用以检查这一点

onResponse() {
     if (isAdded()) {
         mProgress.dismiss();
     }
}
Call Call=apiService.myPost(参数);
call.enqueue(新回调(){
@凌驾
公共响应(响应){
mProgress.disclose();
}
@凌驾
失效时的公共无效(可丢弃的t){
mProgress.disclose();
}
});
onResponse() {
     if (isAdded()) {
         mProgress.dismiss();
     }
}
Call<MyResponse> call = apiService.myPost(params);
call.enqueue(new Callback<MyResponse>() {
    @Override
    public void onResponse(Response<Repo> response) {
        mProgress.dismiss();
    }

    @Override
    public void onFailure(Throwable t) {
        mProgress.dismiss();
    }
});