1

onPreExecute メソッド中に表示される AlertDialog が閉じられるまで、AsyncTask の doInBackground メソッド/スレッドが開始されないようにする方法はありますか?

doInBackground は onPreExecute が完了したときにのみ実行されることを意図していますが、私が知る限り、AlertDialog を開いても onPreExecute の完了は停止しません。

詳細: 現在携帯電話を使用しているため、コード サンプルを提供することはできませんが、コードの概要は、電話会社のネットワーク上にあるため、モバイル データ経由でのみアクセスできるデータを必要とするアプリであるということです。私の getData asynctask の preExec は、最初に Wi-Fi が稼働しているかどうかを確認し、稼働している場合は、Wi-Fi を無効にするオプションとキャンセル オプションを含む警告ダイアログを表示します。

キャンセルするとタスクが終了し、Wi-Fi を無効にすると Wi-Fi が無効になります。doInBg メソッドは、モバイル データ接続が確立されているかどうかを確認し、そうでない場合は、確立されるまでスリープ ループに入ります。起動したら、doInBg はデータを取得します...

現在、Wi-Fi がオンになっている場合、ダイアログが閉じられる前に doInBg が開始され、何かがモバイル接続を起動するまでスリープ ループに閉じ込められます...これは、回避したい潜在的な問題につながります。

4

1 に答える 1

0

どこかで起動して、wifi が稼働しているかどうかを確認してから、AlertDialogListener を使用して AlertDIAlog のボタンのアクションをキャッチできます。その後、AlertDialogListener 内で Async を開始できます。

于 2011-01-31T01:39:00.810 に答える