onPreExecute メソッド中に表示される AlertDialog が閉じられるまで、AsyncTask の doInBackground メソッド/スレッドが開始されないようにする方法はありますか?
doInBackground は onPreExecute が完了したときにのみ実行されることを意図していますが、私が知る限り、AlertDialog を開いても onPreExecute の完了は停止しません。
詳細: 現在携帯電話を使用しているため、コード サンプルを提供することはできませんが、コードの概要は、電話会社のネットワーク上にあるため、モバイル データ経由でのみアクセスできるデータを必要とするアプリであるということです。私の getData asynctask の preExec は、最初に Wi-Fi が稼働しているかどうかを確認し、稼働している場合は、Wi-Fi を無効にするオプションとキャンセル オプションを含む警告ダイアログを表示します。
キャンセルするとタスクが終了し、Wi-Fi を無効にすると Wi-Fi が無効になります。doInBg メソッドは、モバイル データ接続が確立されているかどうかを確認し、そうでない場合は、確立されるまでスリープ ループに入ります。起動したら、doInBg はデータを取得します...
現在、Wi-Fi がオンになっている場合、ダイアログが閉じられる前に doInBg が開始され、何かがモバイル接続を起動するまでスリープ ループに閉じ込められます...これは、回避したい潜在的な問題につながります。