1

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

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

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

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

1 回答 1

0

get()如果您使用了 asyncTask 的方法,我不确定它是否不起作用。

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

于 2012-04-04T08:57:40.210 回答