我在AsyncTask完成时忽略了进度对话框.在解雇之前我应该检查isShowing吗?
我已经尝试删除此检查并且它正常工作,但可能有隐藏的陷阱?
if (progressDialog.isShowing()) {
progressDialog.dismiss();
}
Run Code Online (Sandbox Code Playgroud)
cod*_*e22 10
你不应该检查isShowing来解雇它.如果你不检查isShowing它将忽略dismiss()是进度条没有显示.
但是检查isShowing是一个很好的做法.所以继续检查它不会有什么坏处.
似乎在实现内部进行了检查:
public void dismiss() {
if (Thread.currentThread() != mUiThread) {
mHandler.post(mDismissAction);
} else {
mDismissAction.run();
}
}
private void dismissDialog() {
if (mDecor == null || !mShowing) {
return;
}
try {
mWindowManager.removeView(mDecor);
} finally {
mDecor = null;
mWindow.closeAllPanels();
onStop();
mShowing = false;
sendDismissMessage();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6636 次 |
| 最近记录: |