我想在Web服务调用期间显示进度条。我在调用服务之前调用了进度条,但是在服务调用完成后我才收到响应。
ProgressDialog dialog = ProgressDialog.show(LogIn.this,"","Loading. Please wait...", true);
status=Loginvalid(method,username,psword); //calling the method for making service call
但是,在从服务收到响应后,将启动进度对话框。 请问我该如何解决这个问题..
答案 0 :(得分:3)
public class Progress extends AsyncTask<String, Void, Void> {
protected void onPreExecute() {
ProgressDialog dialog = new MyProgressDialog(MyActivity.this, "Loading.. Wait..");
dialog.show();
}
@Override
protected Void doInBackground(String... params) {
// TODO Auto-generated method stub
// do your network connection
return null;
}
protected void onPostExecute(Void unused) {
dialog.dismiss();
}
}
答案 1 :(得分:2)
使用AsyncTask
。这是在Web服务调用期间显示进度对话框的最有效,最轻松的方式。
显示preexecute上的进度条,在doInBackground方法中调用web服务,并关闭onPostexecute上的进度条。
http://developer.android.com/reference/android/os/AsyncTask.html
答案 2 :(得分:0)
为了正确显示进度对话框,必须在UIThread上执行,而所有其他工作(service call
) - 在另一个中执行。请参阅示例here。