什么时候进度对话框没有在android中显示?我想知道上述情况发生时的情况:
在我的情况下,在这种情况下没有显示进度对话框:
func{
progressdialog.show();
....
.....
anotherfunction();
listview.setAdapter();
progressdialog.dismiss();
}
对话框的一般经验法则是什么?
提前谢谢。
修改 执行.show()命令时,应显示进度对话框。但是当调用otherfucntion()时,progressdialog的上一个命令是否显示停止?
答案 0 :(得分:3)
似乎你需要使用AsyncTask如果UI线程仍然忙,UI将不会更新(包括progressDialog)。 SO中有很多例子。
根据经验 - 如果你需要进度对话框, - 你需要AsyncTask 。
不是任何命令都停止,只是如果你在UI线程上执行一系列方法,那么在序列结束之前可能不会更新UI,这在progressDialog.dismiss()
之后,所以不应再显示progressDialog。
答案 1 :(得分:1)
我认为你必须在你的活动中这样做。
ProgressDialog _progressDialog = ProgressDialog.show(this,"Saving Data","Please wait......");
settintAdater();
private void settingAdater(){
Thread _thread = new Thread(){
public void run() {
Message _msg = new Message();
_msg.what = 1;
// Do your task where you want to rerieve data to set in adapet
YourCalss.this._handle.sendMessage(_msg);
};
};
_thread.start();
}
Handler _handle = new Handler(){
public void handleMessage(Message msg) {
switch(msg.what){
case 1:
_progressDialog.dismiss();
listview.setAdapter();
}
}
}
答案 2 :(得分:0)
显示ProgressDialog使用
ProgressDialog progressDialog = ProgressDialog.show(PrintMain.this, "",
"Uploading Document. Please wait...", true);
完成任务后
progressDialog.dismiss();
关闭ProgressDialog ..
您可以致电onPreExecute
AsyncTask
类的onPostExecute
方法中显示ProgressDialog,并在{{1}}方法完成后将其解除