我正在使用的AsyncTask(我在我的主要活動我開始)來加載一些數據:的AsyncTask不顯示ProgressDialog
Context context = VehicleTabView.this;
ProgressDialog progressDialog = new ProgressDialog(context);
progressDialog.setMessage("Loading...");
new LoadingVehicles(context, progressDialog).execute(null, null, null);
這裏是AsyncClass:
package com.example.schedule_vehicles;
import com.example.utils.VehicleNames;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
// Showing a ProgressDialog once loading the list of vehicles is completed using an AsyncTask
public class LoadingVehicles extends AsyncTask<Void, Void, Void> {
Context context;
ProgressDialog progressDialog;
public LoadingVehicles(Context context, ProgressDialog progressDialog) {
this.context = context;
this.progressDialog = progressDialog;
}
@Override
protected void onPreExecute() {
progressDialog.show();
}
@Override
protected Void doInBackground(Void... params) {
new VehicleNames(context);
return null;
}
@Override
protected void onPostExecute(Void result) {
progressDialog.dismiss();
}
}
的問題ProgressDialog沒有顯示在屏幕上。
我鍵入Log.d,查看程序是否正在經歷所有階段 - onPreExecute,doInBackground,onPostExecute,並且它正在經歷所有階段並執行我需要的工作。 但是 ProgressDialog未顯示。我讀了很多關於這個東西的信息,似乎PRE和POST執行是由主線程啓動的,它被DOINBACKGROUND方法阻塞,這就是不能看到ProgressDialog的原因。我試圖找到一些答案如何解決 - 但沒有成功。
如果有人遇到此問題,請分享您的經驗。非常感謝!
程序是否進入'onPreExecute()'循環,如果不嘗試使用super.onPreExecute(),它可能會有所幫助。 – 2012-08-17 11:49:51