我想在http连接请求时显示ProgressDialog。
有请求方法。
protected Result request(String urlStr, String postData) {
ProgressDialog dialog = ProgressDialog.show(activity, "", "Loading...",true);
Result result = new Result();
String message = "";
try {
message = HttpRequest.postURL(urlStr, postData);
result = new Result(message);
} catch (Exception e) {
Log.e(TAG,"Failed to request data from " + urlStr + "\n" + e.getMessage());
}
dialog.dismiss();
return result;
}
但是当这个方法运行时。 ProgressDialog没有显示。 如何解决这个问题?
答案 0 :(得分:2)
您需要致电dialog.show()
启动对话框并在屏幕上显示。窗户放在 应用层和不透明。请注意,您不应该覆盖它 而是在显示对话框时进行初始化的方法 在
onStart()
中实现它。
此外,我建议您在AsyncTask
班级doInBackground()
中执行此操作
在onPreExecute()
中,显示ProgressDialog
并在onPostExecute()
中将其解除。
答案 1 :(得分:0)
protected Result request(String urlStr, String postData) {
ProgressDialog dialog = ProgressDialog.show(activity, "", "Loading...",true);
Result result = new Result();
String message = "";
try {
message = HttpRequest.postURL(urlStr, postData);
result = new Result(message);
} catch (Exception e) {
Log.e(TAG,"Failed to request data from " + urlStr + "\n" + e.getMessage());
}
dialog.show();
return result;
}
不要忘记调用dialog.dismiss();带按钮
答案 2 :(得分:0)
进度对话框没有显示的原因有很多,但在您的情况下,我猜是因为您传递了错误的Context
以显示ProgessDialog
,请检查您的Activity
上下文。请确保使用正确的Context
或仅将其更改为ApplicationContext
ProgressDialog dialog = ProgressDialog.show(activity, "", "Loading...",true);
选中此行,尤其是activity
。希望这会有所帮助。