我有一些代码在AsyncTask中做了一些处理,但是这是在运行,我想显示一个进度对话框。在很多时候,我都希望更新消息,但我遇到了一些麻烦。继承人是我到目前为止有:Android:AysncTask中的进度对话框错误
class ShowDialogAsyncTask extends AsyncTask<Void, String, Void>{
private ProgressDialog progressSpinner;
@Override
protected void onPreExecute() {
ProgressDialog progressSpinner = new ProgressDialog(MainActivity.this);
progressSpinner.setTitle("File Download");
progressSpinner.setMessage("Connecting to Internet");
progressSpinner.show();
}
@Override
protected Void doInBackground(Void... params)
{
Log.v("doInBackground","1");
try {
Log.v("doInBackground","2");
onProgressUpdate("Downloading File");
//do some stuff
} catch (IOException e) {
result = "Error";
}
onProgressUpdate("Complete!");
SystemClock.sleep(300);
return null;
}
protected void onProgressUpdate(String... values)
{
Log.e("onProgressUpdate",values[0]);
try{
progressSpinner.setMessage(values[0]);
}catch(Exception e){Log.e("onProgressUpdate","Error!");}
Log.e("onProgressUpdate","Success!");
}
@Override
protected void onPostExecute(Void result)
{
progressSpinner.dismiss();
vf.showNext();
}
}
,我希望将有更新的消息不工作的代码,它只是抛出一个异常。然后,当我尝试关闭进度对话框时,整个事件崩溃。
我对android开发很新,所以我非常感谢任何指针。
Logcat条目,它都有点梨形。
03-22 22:59:30.189: W/dalvikvm(8133): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
03-22 22:59:30.189: E/AndroidRuntime(8133): Uncaught handler: thread main exiting due to uncaught exception
03-22 22:59:30.195: E/AndroidRuntime(8133): java.lang.NullPointerException
--UPDATE--
看来,我的问题是,我已经宣告进度对话框。我终于想通了,我可以在一个新创建的构造申报进度对话框像这样
progressSpinner = new ProgressDialog(mContext);
那么它将允许的的AsyncTask类访问的所有其他方法来更新消息。
看看我的答案 – Droidman 2013-03-22 23:40:30