【发布时间】:2011-10-28 14:47:55
【问题描述】:
我正在 android 中创建一个线程来进行耗时的操作。我希望主屏幕显示一个进度对话框,其中包含一条消息,通知操作正在进行中,但我希望该对话框在线程完成后关闭。我试过加入,但它锁定了线程并且不显示对话框。我尝试使用:
dialog.show();
mythread.start();
dialog.dismiss();
但随后对话框不显示。如何进行该序列但等待线程结束而不锁定主线程?
据我所知:
public class syncDataElcanPos extends AsyncTask<String, Integer, Void> {
ProgressDialog pDialog;
Context cont;
public syncDataElcanPos(Context ctx) {
cont=ctx;
}
protected void onPreExecute() {
pDialog = ProgressDialog.show(cont,cont.getString(R.string.sync), cont.getString(R.string.sync_complete), true);
}
protected Void doInBackground(String... parts) {
// blablabla...
return null;
}
protected void onProgressUpdate(Integer... item) {
pDialog.setProgress(item[0]); // just for possible bar in a future.
}
protected void onPostExecute(Void unused) {
pDialog.dismiss();
}
但是当我尝试执行它时,它给了我一个异常:“无法添加窗口”。
【问题讨论】: