Android的 CountDownTimer的使用
来源:互联网 发布:软件停止工作怎么办 编辑:程序博客网 时间:2024/06/06 09:47
说道计时器,可能是因为从java出门的。所以一直使用的都是java的timer类以及配套的timertask类,今天逛逛博客,看到了CountDownTimer
这个类,照例搜索了一番,然发现他是Android封装好的一个计时的类,既然人家都封好了,使用起来肯定比timer的使用还要简单。所以做了一个简单的demo。,发现特别简单,接下来上他的用法
TextView textView;
CountDownTimer countdowntimer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView=(TextView) this.findViewById(R.id.textView1);
countdowntimer=new CountDownTimer(10000,1000) {
@Override
public void onTick(long millisUntilFinished) {
textView.setText(millisUntilFinished+"");
}
@Override
public void onFinish() {
textView.setText("finish");
}
};
countdowntimer.start();
}
}
代码比较简单,其中的参数
第一个为总时间,比如3000,,
第二个 间隔时间,比如1000
然后开始看看源码。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
public CountDownTimer(long millisInFuture, long countDownInterval) {
mMillisInFuture = millisInFuture;
mCountdownInterval = countDownInterval;
}
这个就是构造方法了,比较简单,而且他也只有这个构造方法
public synchronized final void cancel() {
mCancelled = true;
mHandler.removeMessages(MSG);
}
然后再这个cancel类中可以看到他是通过handler去操作的,好吧,凡事离不开handler
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
synchronized (CountDownTimer.this) {
if (mCancelled) {
return;
}
final long millisLeft = mStopTimeInFuture - SystemClock.elapsedRealtime();
if (millisLeft <= 0) {
onFinish();
} else if (millisLeft < mCountdownInterval) {
sendMessageDelayed(obtainMessage(MSG), millisLeft);
} else {
long lastTickStart = SystemClock.elapsedRealtime();
onTick(millisLeft);
long delay = lastTickStart + mCountdownInterval - SystemClock.elapsedRealtime();
while (delay < 0) delay += mCountdownInterval;
sendMessageDelayed(obtainMessage(MSG), delay);
}
}
}
};
这个是handler里的操作,看得出来。
1。必须是锁定的,这样就不会照成混乱。
2.对long型数据的操作,然后就没没了,所以还是很简单的,
对了,最后提醒,要启动时既得是用start方法
- android CountDownTimer的使用
- Android的 CountDownTimer的使用
- Android倒计时CountDownTimer的使用
- Android倒计时CountDownTimer的使用
- Android CountDownTimer类的使用
- android 倒计时CountDownTimer的使用
- android中CountDownTimer的使用
- Android倒计时 CountDownTimer的使用
- Android CountDownTimer倒计时器的使用
- Android CountDownTimer倒计时器的使用
- Android CountDownTimer倒计时器的使用
- android的倒计时类CountDownTimer使用
- Android 倒计时API CountDownTimer的使用
- Android CountDownTimer倒计时器的使用
- Android CountDownTimer倒计时器的使用
- Android CountDownTimer倒计时器的使用
- 【Android实测】CountDownTimer类的使用
- Android CountDownTimer倒计时器的使用
- Dubbo与Zookeeper、SpringMVC整合和使用
- 202. Happy Number
- java- 分布式- 一致性哈希算法(1)
- Maven笔记
- ORA-12154: TNS:could not resolve the connect identifier specified
- Android的 CountDownTimer的使用
- Android 恢复出厂设置(系统时间不修改)
- 计算两点的坐标值
- 卷积神经网络中图像池化操作全解析
- Html(5) - 超链接
- Java函数式编程
- 第12周项目2-时间类
- Java多线程笔记
- 基于Openwrt iptables 限速