我需要从ASyncTask向主线程返回一个值,所以我使用了get()方法,以便主线程等到后台线程运行。
time = mFetchServerDate.execute().get();
然而,在我的ASyncTask中,我在onPreExecute()方法中打开了一个进度对话框,当我不使用get()时,它按预期工作,但当我将其添加回来时,只需挂起应用程序,显示对话框几分之一秒然后回到主线程。
@Override
protected void onPreExecute(){
super.onPreExecute();
pd = ProgressDialog.show(mContext, "", "", true, false);
}
答案 0 :(得分:0)
如果您使用get()
方法进行asyncTask,我不确定它是否有效。
无论如何你可以使用this.runOnUiThread(action)
;当您需要更新AsyncTaks等线程中的UI时。