当使用get()返回值时,Android ASyncTask不会在onPreExecute()中显示对话框

时间:2012-04-04 08:25:10

标签: android android-asynctask

我需要从ASyncTask向主线程返回一个值,所以我使用了get()方法,以便主线程等到后台线程运行。

time = mFetchServerDate.execute().get();

然而,在我的ASyncTask中,我在onPreExecute()方法中打开了一个进度对话框,当我不使用get()时,它按预期工作,但当我将其添加回来时,只需挂起应用程序,显示对话框几分之一秒然后回到主线程。

@Override 
protected void onPreExecute(){
   super.onPreExecute();
   pd = ProgressDialog.show(mContext, "", "", true, false);
}

1 个答案:

答案 0 :(得分:0)

如果您使用get()方法进行asyncTask,我不确定它是否有效。

无论如何你可以使用this.runOnUiThread(action);当您需要更新AsyncTaks等线程中的UI时。