2

私のアプリでは GPS の読み取りが必要なため、メイン スレッドで GPS を読み取るスレッドを開始しましたが、「お待ちください」というダイアログを表示するのに問題があります。Handler も使用して結びましたが、それも機能しませんでした。2番目のスレッドから「お待ちください」ダイアログを制御するのに最適なものは何ですか? ありがとう!

public void showWaitDialog() {

    prgDialog = new ProgressDialog(context);
    prgDialog.setTitle("Please wait.");
    prgDialog.setMessage("Please wait.");
    prgDialog.setCancelable(false);
    prgDialog.show();


}
4

3 に答える 3

6

あなたはできる:

  • HandlerUI スレッド ( など) でを定義し、Activityそれをスレッドに渡します。呼び出したスレッドからhandler.post(runnable)、UIThread で実行されるコードをエンキューします。

  • あなたのスレッドでを定義しBroadcastReceiver、あなたのActivityスレッドから をIntent必要な情報とともにBundle

  • AsyncTaskおよびメソッドpublishProgress()を使用するか、進行状況またはタスクの終了onProgressUpdate()onPostExecute()に通知します。Activity

  • を使用しrunOnUiThreadます。

それはあなたのニーズに依存します。実行時間の短い非同期操作の場合AsyncTaskは、適切な選択です。

于 2013-07-22T23:00:17.293 に答える