警报对话框是可见的,直到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();
}
}
}
答案 0 :(得分:1)
您应该在Activity中启动AlertDialog。你的Thread应该通过一个处理程序向Activity发送一条消息,知道何时显示和关闭你的Dialog。
答案 1 :(得分:0)
首先调用startVibrate方法然后关闭对话框,更好地调用cancel而不是dismiss。