需要在AlertDialog上添加一个倒计时计时器,如果2分钟后没有响应,则执行一个方法



我正试图在我的AlertDialog上添加一个计时器,以便如果在2分钟后没有响应,它将转到一个方法。

private void AlertMe() {
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(MapsActivity.this);
alertDialogBuilder.setTitle("We detected an unexpected collision");
alertDialogBuilder.setCancelable(false);
alertDialogBuilder.setMessage("Do you need medical assistance? If you don't respond within 2 minutes, I will notify everyone on your emergency contacts.");
alertDialogBuilder.setPositiveButton("YES", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MapsActivity.this, "Requesting Emergency Services", Toast.LENGTH_SHORT).show();
CallServices();
}
});
alertDialogBuilder.setNegativeButton("CANCEL", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MapsActivity.this, "Request for Emergency Services Cancelled", Toast.LENGTH_SHORT).show();
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialogBuilder.show();
}

我尝试添加一个倒计时定时器,但我不能停止定时器与alertDialogBuilder.setNegativeButton我该如何实现它?谢谢。

文件顶部

private AlertDialog alertDialog;

然后

private void AlertMe() {
CountDownTimer timer= new CountDownTimer(120000, 1000) {
public void onTick(long millisUntilFinished) {
}
public void onFinish() {
if(alertDialog != null && alertDialog.isShowing()){
alertDialog.dismiss();
CallServices();
}
}
};

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
alertDialogBuilder.setTitle("We detected an unexpected collision");
alertDialogBuilder.setCancelable(false);
alertDialogBuilder.setMessage("Do you need medical assistance? If you don't respond within 2 minutes, I will notify everyone on your emergency contacts.");
alertDialogBuilder.setPositiveButton("YES", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(YesProfileUpdate.this, "Requesting Emergency Services", Toast.LENGTH_SHORT).show();
CallServices();
}
});
alertDialogBuilder.setNegativeButton("CANCEL", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
timer.cancel();
Toast.makeText(YesProfileUpdate.this, "Request for Emergency Services Cancelled", Toast.LENGTH_SHORT).show();
}
});

alertDialog = alertDialogBuilder.create();
alertDialogBuilder.show();
timer.start();
}

最新更新