定时器----Timer
来源:互联网 发布:土巴兔云设计软件下载 编辑:程序博客网 时间:2024/06/06 08:47
1.Timer介绍
来自jdk:
一种工具,线程用其安排以后在后台线程中执行的任务。可安排执行一次,或者定期重复执行。
与每个Timer对象对应的是单个后台线程,用于顺序地执行所有计时器任务。
2.TimerTask介绍
由Timer安排为一次执行或重复执行的任务。TimerTask实现了Runnable接口,待执行的任务置于run()中。
Timer是一个安排TimerTask的类,两者一般一起工作。
使用时首先应创建一个TimerTask的对象,然后用一个Timer的类对象安排执行它。
3.使用步骤
(1)实现TimerTask的子类或是写成匿名内部类,run方法中写要执行的代码。
(2)实例化Timer类,创建计时器后台线程。
(3)实例化TimerTask子类。
(4)使用Timer类的schedule方法开始执行。schedule的第一个参数是TimerTask对象,第二个参数表示延迟执行的时间。若是有第三个参数,则代表重复执行的时间间隔。若是没有,则代表不重复。
4.使用实例
protected Timer timer = new Timer();timer.schedule(new TimerTask() {@Overridepublic void run() {handler.sendEmptyMessage(10086);}}, 1000, 1000);
把TimerTask定义成匿名内部类。
5.结束Timer
使用Timer中的cancel方法。
sleeptimer.cancel();
还有一些其他的方法:在TimerTask内的任务执行完后,将timer对象的引用置空(timer = null;)这样timer线程会终止。或是使用System.exit方法,让整个程序终止。
6.注意:
一个Timer仅对应一个线程;
Timer的构造方法启动计时器线程;
在Android中使用的时候,由于Timer对应一个线程,故不能在其中更新UI组件。可以在run方法中使用Handler发消息,然后在Handler中更新UI。
Timer timer = new Timer();timer.schedule(new TimerTask() {@Overridepublic void run() {// TODO Auto-generated method stubLog.d("zhangmq", "schedule schedule");if (stop) {int tmp = (int) (Math.random() * 100) + 1;Message msg = Message.obtain();msg.what = 100;msg.arg1 = tmp;myHandler.sendMessage(msg);} else {cancel();}}}, 0, 50);Handler myHandler = new Handler() {@Overridepublic void handleMessage(Message msg) {// TODO Auto-generated method stubsuper.handleMessage(msg);switch (msg.what) {case 100:show.setText(msg.arg1 + "");break;}}};
7.与Handler的区别
Timer是在线程中执行run方法,对应一个线程。
Handler是将执行的动作加到Android系统的消队列中,默认情况还是在主线程中执行。
0 0
- Timer 定时器
- TIMER 定时器
- timer 定时器
- timer 定时器
- timer定时器
- 定时器 Timer
- 定时器Timer
- timer定时器
- Timer 定时器
- Timer定时器
- 定时器TIMER
- 定时器Timer
- timer定时器
- Timer 定时器
- Timer定时器
- 定时器 timer
- 定时器 Timer
- Timer定时器
- 手机安全卫士的一些总结
- iOS AlertView、ActionSheet
- 我的世界mod
- 数据签名与验证--OpenSSL
- assign,copy,retain之间的区别
- 定时器----Timer
- A Linear Algebra View of the Wavelet Transform
- Windows搭建solrcloud(转载)
- caffe 如何调用python层
- The Daubechies D4 Wavelet Transform
- The Wavelet Lifting Scheme
- Sun的JDK7、OpenJDK及IcedTea释疑
- struts_basics
- Spectral Analysis and Filtering with the Wavelet Transform