ASyncTask からメイン スレッドに値を返す必要があるため、バックグラウンド スレッドが実行されるまでメイン スレッドが待機するように get() メソッドを使用しました。
time = mFetchServerDate.execute().get();
ただし、私の ASyncTask では、get() を使用しない場合は期待どおりに機能する onPreExecute() メソッドで進行状況ダイアログを開くことができますが、それを再度追加すると、アプリがハングし、ダイアログが表示されます。 1 秒後、メイン スレッドに戻ります。
@Override
protected void onPreExecute(){
super.onPreExecute();
pd = ProgressDialog.show(mContext, "", "", true, false);
}