今天实现一个 呼叫计时的功能,需要用一个延时处理的方法,搜了一下各种方案 比如TimerTask thread handler.post等等,发现 有的能实现功能但比较麻烦 比如TimerTask,有比较简单的 但时间又不准确,幸而在一个评论里看到了一种简单完美方便的姐姐方案,google 在Android 已经提供了CountDownTimer 类,简直完美,再也不需要造蹩脚的轮子了。
直接上代码:
- new CountDownTimer(30000, 1000) {
- public void onTick(long millisUntilFinished) {
- mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);
- }
- public void onFinish() {
- mTextField.setText("done!");
- }
- }.start();
new CountDownTimer(30000, 1000) {
public void onTick(long millisUntilFinished) {
mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);
}
public void onFinish() {
mTextField.setText("done!");
}
}.start();
代码很简单,第一个参数30000 是整个计时时间30s,第二个参数1000ms 是tick 间隔 1秒,即 在计时过成中每一秒会有一个onTick回调。
onTick回调中传递参数millisUntilFinished 为剩余计时时间的毫秒数;
onFinish 为计时结束 可以 在里面直接进行结束想要的操作;
亲自试过 onTick和onFinish 都是在UI线程中,可以直接进行UI操作,是不是超级方便。
使用CountDownTimer 可实现计时、倒计时、间隔操作等等计时相关的功能,赶紧动手自己试试吧。
广而告之:我的Github链接:https://github.com/bailiangjin