我是Android新手,目前正在使用计时器。
从https://developer.android.com/reference/android/os/CountDownTimer中我可以理解CountDownTimer是一个抽象类。
根据我对抽象类的理解,我们无法创建抽象类的对象,通常,如果我们尝试创建抽象类的对象,则IDE将显示错误。
但是我尝试的以下代码未显示任何错误。
我检查了stackoverflow和其他站点,发现我能够创建CountDownTimer对象,但找不到任何解释。
下面是我的代码的摘录。
public void startTimer() {
CountDownTimer c = new CountDownTimer(30000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
timerTextView.setText(Long.toString(millisUntilFinished / 1000)
+ "s");
}
@Override
public void onFinish() {
playAgain.setVisibility(View.VISIBLE);
result.setText("Done");
}
};
c.start();
}
任何有关如何创建CountDownTimer类对象的说明都会有所帮助。
答案 0 :(得分:0)
您的代码实际上正在做的是创建一个内部匿名类,该类扩展了CountDownTimer,实现它并创建该“新”类的对象。
CountDownTimer是抽象的,所以是的,您不能仅单独执行“ new CountDownTimer(30000,1000)”。
但是您的代码将其打开,并实现了“ onTick”和“ onFinish”功能(它们是CountDownTimer类中唯一的抽象功能。