1

ASyncTask からメイン スレッドに値を返す必要があるため、バックグラウンド スレッドが実行されるまでメイン スレッドが待機するように get() メソッドを使用しました。

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

ただし、私の ASyncTask では、get() を使用しない場合は期待どおりに機能する onPreExecute() メソッドで進行状況ダイアログを開くことができますが、それを再度追加すると、アプリがハングし、ダイアログが表示されます。 1 秒後、メイン スレッドに戻ります。

@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 に答える