即使被onClick解雇,AlertDialog仍然可见

时间:2013-11-15 06:49:24

标签: android android-alertdialog

警报对话框是可见的,直到startVibrate()方法完成其任务但我想在单击确定后立即将其关闭

   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();
        }
    }
    }

2 个答案:

答案 0 :(得分:1)

您应该在Activity中启动AlertDialog。你的Thread应该通过一个处理程序向Activity发送一条消息,知道何时显示和关闭你的Dialog。

答案 1 :(得分:0)

首先调用startVibrate方法然后关闭对话框,更好地调用cancel而不是dismiss。

相关问题