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

使用get()返回值时,Android ASyncTask未在onPreExecute()中显示对话框,android,android-asynctask,Android,Android Asynctask,我需要从ASyncTask向主线程返回一个值,因此我使用了get()方法,以便主线程等待后台线程运行 time = mFetchServerDate.execute().get(); 然而,在我的ASyncTask中,我在onPreExecute()方法中打开了一个进度对话框,当我不使用get()时,它会按预期工作,但当我将它添加回时,它只是挂起应用程序,显示对话框一小部分秒,然后返回到主线程 @Override protected void onPreExecute(){ super

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

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

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

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


无论如何,您可以使用
这个.runOnUiThread(操作)
;当您需要在线程(如Asynctak)中更新UI时。

当您暂停负责显示对话框的主线程时,如何显示该对话框。\请不要在UI线程上使用get()。在异步任务完成之前,您可以使进度对话框不可取消或禁用ui元素