赞
踩
一、三种常用的定时器
1.Handler类的postDelayed方法:
- Handler mHandler = new Handler();
- Runnable r = new Runnable() {
-
- @Override
- public void run() {
- //do something
- //每隔1s循环执行run方法
- mHandler.postDelayed(this, 1000);
- }
- };
-
-
- 主线程中调用: mHandler.postDelayed(r, 100);//延时100毫秒
2.用handler+timer+timeTask方法:
- Handler handler = new Handler() {
- @Override
- public void handleMessage(Message msg) {
- if (msg.what == 1){
- //do something
- }
- super.handleMessage(msg);
- }
- };
-
- Timer timer = new Timer();
- TimerTask timerTask = new TimerTask() {
- @Override
- public void run() {
- Message message = new Message();
- message.what = 1;
- handler.sendMessage(message);
- }
- };
- 主线程中调用:timer.schedule(timerTask,1000,500);//延时1s,每隔500毫秒执行一次run方法
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
3.Thread+handler方法:
- 1 Handler handler = new Handler() {
- 2 @Override
- 3 public void handleMessage(Message msg) {
- 4 if (msg.what == 1){
- 5 //do something
- 6 }
- 7 super.handleMessage(msg);
- 8
- 9 }
- 10 };
- 11
- 12 class MyThread extends Thread {//这里也可用Runnable接口实现
- 13 @Override
- 14 public void run() {
- 15 while (true){
- 16 try {
- 17 Thread.sleep(1000);//每隔1s执行一次
- 18 Message msg = new Message();
- 19 msg.what = 1;
- 20 handler.sendMessage(msg);
- 21 } catch (InterruptedException e) {
- 22 e.printStackTrace();
- 23 }
- 24
- 25 }
- 26 }
- 27 }
- 28 主线程中调用:new Thread(new MyThread()).start();
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
二、三种延时的快捷方法:
1.Handler的postDelayed方法:
- 1 new Handler().postDelayed(new Runnable() {
- 2
- 3 @Override
- 4 public void run() {
- 5 //do something
- 6 }
- 7 }, 1000); //延时1s执行
2.timer + TimerTask方法:
- 1 timer = new Timer();
- 2 timer.schedule(new TimerTask() {
- 3 @Override
- 4 public void run() {
- 5 //do something
- 6 }
- 7 },1000);//延时1s执行
3.Thread方法:
- 1 new Thread(new MyThread()).start();
- 2 new Thread(new Runnable() {
- 3 @Override
- 4 public void run() {
- 5 try {
- 6 Thread.sleep(1000);//延时1s
- 7 //do something
- 8 } catch (InterruptedException e) {
- 9 e.printStackTrace();
- 10 }
- 11 }
- 12 }).start();
转载地址:http://blog.csdn.net/u011710991/article/details/50133455
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。