我希望在处理某些用户的请求时显示进度对话框。这是我的代码,我没有看到对话框没有出现在屏幕上的任何充分理由。
public void onGoClick(Button button) {
ProgressDialog progressDialog = null;
try {
if (invalid) {
// Show error message
} else {
progressDialog = new ProgressDialog(getActivity());
progressDialog.setIndeterminate(true);
progressDialog.setMessage(getActivity().getResources().getString(R.string.user_wait_message));
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.show();
// Do processing
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
progressDialog.dismiss();
}
}
当我在try块中移动ProgressDialog声明语句并从finally块中删除dismiss方法时,我能够在屏幕上看到圆形对话框,但是当我像上面的代码一样更改它时,没有任何结果屏幕上。处理区域内没有异步调用,这就是为什么我在这里找不到任何错误的原因。感谢任何帮助。谢谢。
答案 0 :(得分:1)
显示“进度”对话框,然后立即将其解除。 finally块在try块之后直接执行。
尝试添加OnDismissListener以自行验证。
答案 1 :(得分:0)
清洁和构建对我来说非常奇怪。我不知道它是否是Android Studio(1.2)或其他内容中的错误。我非常感谢你的答案,因为它非常有用,而且我在android中学到了很多关于async的东西:)