我在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();
}
但是,當我試着執行它時,它給了我一個例外:「無法添加窗口」。
謝謝大家的幫助,會嘗試AsyncTask選項,看看它是怎麼回事... – MarioV
如何在進度對話框中添加上下文? MyActivity.this不適合我,說它不能用這些參數創建,它只是採取活動本身而不是上下文。 – MarioV
你是否將類AddTask聲明爲Activity的InnerClass?如果是的話,那麼它應該工作,如果沒有,所以你應該將上下文傳遞給你的類AddTask – Houcine