📅  最后修改于: 2023-12-03 14:59:15.987000             🧑  作者: Mango
CountDownTimer 是 Android 中的一个 Timer 类,它可以在指定时间内每隔一段时间执行一次操作并更新剩余时间。它非常适合做倒计时或轮询操作。
在创建 CountDownTimer 时,需要指定倒计时时间、更新间隔和操作。
CountDownTimer countDownTimer = new CountDownTimer(60000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
// 在倒计时过程中更新剩余时间
textView.setText(String.valueOf(millisUntilFinished / 1000));
}
@Override
public void onFinish() {
// 倒计时结束后执行操作
textView.setText("Done");
}
};
在上面的示例中,倒计时时间为 60 秒,更新间隔为 1 秒。在 onTick 方法中可以更新剩余时间的显示,在 onFinish 方法中可以执行倒计时结束后的操作。
创建 CountDownTimer 后,需要使用 start() 方法来启动,使用 cancel() 方法来取消。
countDownTimer.start(); // 启动倒计时
countDownTimer.cancel(); // 取消倒计时
public class MainActivity extends AppCompatActivity {
private TextView textView;
private CountDownTimer countDownTimer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.text_view);
countDownTimer = new CountDownTimer(60000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
textView.setText(String.valueOf(millisUntilFinished / 1000));
}
@Override
public void onFinish() {
textView.setText("Done");
}
};
countDownTimer.start(); // 启动倒计时
}
@Override
protected void onDestroy() {
super.onDestroy();
countDownTimer.cancel(); // 取消倒计时
}
}
在上面的完整代码示例中,我们定义一个倒计时时间为 60 秒,更新间隔为 1 秒的 CountDownTimer,并在 onTick 方法中更新 TextView 的显示。在 onDestroy 方法中取消 CountDownTimer,以避免内存泄漏。