Android 在时间结束之前调用onFinish方法

Android 在时间结束之前调用onFinish方法,android,countdowntimer,Android,Countdowntimer,我在alertdialog中有两个numberpickers,当我按下OK按钮时,倒计时将以我设置的小时和分钟开始,倒计时效果很好,但onfinish方法会在一半时间调用,例如,如果我设置1分钟,则在剩余30秒时调用onfinish方法 代码如下: public void onClick(DialogInterface dialog, int which) { new CountDownTimer((numberPicker1.getValue()*3600000)+(numberPicker

我在alertdialog中有两个numberpickers,当我按下OK按钮时,倒计时将以我设置的小时和分钟开始,倒计时效果很好,但onfinish方法会在一半时间调用,例如,如果我设置1分钟,则在剩余30秒时调用onfinish方法

代码如下:

public void onClick(DialogInterface dialog, int which) {

new CountDownTimer((numberPicker1.getValue()*3600000)+(numberPicker2.getValue()*60000),1000) {

public void onTick(long millisUntilFinished) {
Ayuda.this.finish();
String hms = String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(millisUntilFinished), TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished)-TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millisUntilFinished)), TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished)-TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished))); 

Toast.makeText(getApplicationContext(), "Tiempo restante "+hms, 1000).show();

}
public void onFinish() {

Toast.makeText(getApplicationContext(), "Tiempo terminado ", 1000).show();

Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);
}
}.start();
}

你确定?因为我试过你的代码,它工作得很好。也许numberPicker1和numberPicker2的值在输入倒计时之前就被操纵了。我完全确定,也许我应该在线程中调用Toast,这样它的性能会更好。