1
ASyncTaskからメインスレッドに値を返す必要があるため、get()メソッドを使用してメインスレッドがバックグラウンドスレッドが実行されます。 get()を使用して値を返すときにAndroid ASyncTaskがonPreExecute()ダイアログを表示しない
time = mFetchServerDate.execute().get();
は、しかし、私のASyncTaskに私は、私は、get()を使用しないとき期待どおりに動作onPreExecute()メソッドの進捗ダイアログ開口部を持っていますが、私はそれに戻ってそれを追加するときだけでアプリをハング数秒間のダイアログが表示され、メインスレッドに戻ります。
@Override
protected void onPreExecute(){
super.onPreExecute();
pd = ProgressDialog.show(mContext, "", "", true, false);
}
ダイアログを表示するメインスレッドを一時停止すると、どのように表示されますか?\ – ngesh
UIスレッドでget()を使用しないでください。 asyncTaskが終了するまで、進行状況ダイアログをキャンセルできないようにするか、UI要素を無効にすることができます。 – Renard
十分なことに、とにかくサーバーから日付を取得する必要はありませんでした –