0
我是android.os.AsyncTask
處理android.app.ProgressDialog
的新方法。我遇到了通過android.database.Cursor
處理特定查詢並將其轉換爲我需要的實體的問題。Android ProgressDialog查詢處理
我正在關注此模板,但它總是會返回給我一個android.view.WindowManager$BadTokenException
。
List<Entity> loadData() throws Exception {
AsyncTask<Cursor, Void, List<Entity>> process = new AsyncTask<Cursor, Void, List<Entity>>() {
ProgressDialog dialog;
protected void onPreExecute() {
dialog = ProgressDialog.show(getApplicationContext(), "Please wait...", "Loading data...");
}
protected void onPostExcecute() {
dialog.dismiss();
}
@Override
protected List<Entity> doInBackground(Cursor... params) {
List<Entity> entities = new ArrayList<Entity>();
// process of convertion of data from android.database.Cursor to <pacakge>.Entity
return entities;
}
}.execute(/* the query : android.database.Cursor */)
return process.get();
}
我錯過了什麼嗎?
ProgressDialog不顯示或者在進程結束時顯示。 –
@ Dr.Java:但是這不是一個錯誤,因爲你正在使用AsyncTask的get方法,它會凍結UI直到doInBackground執行沒有完成。 –
關於如何解決這個問題的任何建議? –