0

アラート ダイアログは startVibrate() メソッドがタスクを完了するまで表示されますが、[OK] をクリックしたらすぐに閉じたいです

   AlertDialog.Builder builder = new Builder(VibrationActivity.this);
            builder.setCancelable(false);
            builder.setTitle("Vibration Test");
            builder.setMessage("Your device will vibrate now.");
            builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();   //Dismiss the dialog
                    startVibration();       //Start the test
                }
            });
            builder.show();

    public void startVibration(){
      for (int i = 1; i <= 5; i++) {
         try {
              vibrator.vibrate(500); // Vibration time in milliseconds
              Thread.sleep(750); // Interval between two vibration
         } catch (InterruptedException e) {
           e.printStackTrace();
        }
    }
    }
4

2 に答える 2

1

アクティビティ内で AlertDialog を起動するだけです。スレッドは、いつダイアログを表示して閉じるかを知るために、ハンドラーを介してアクティビティにメッセージをディスパッチする必要があります。

于 2013-11-15T06:54:31.827 に答える
0

最初に startVibrate メソッドを呼び出してからダイアログを閉じます。閉じるのではなくキャンセルを呼び出すことをお勧めします。

于 2013-11-15T06:54:24.477 に答える