Android 如何使用改型2更正片段内的handle Dialog.dismise()
我使用改造2在片段中向我的服务器发出POST请求,如下所示: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
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();
}
});