当前位置:   article > 正文

Android中几种常用的定时器和延时方法_android thread 延迟1秒

android thread 延迟1秒

一、三种常用的定时器 
1.Handler类的postDelayed方法:

  1. Handler mHandler = new Handler();
  2. Runnable r = new Runnable() {
  3. @Override
  4. public void run() {
  5. //do something
  6. //每隔1s循环执行run方法
  7. mHandler.postDelayed(this, 1000);
  8. }
  9. };
  10. 主线程中调用: mHandler.postDelayed(r, 100);//延时100毫秒

2.用handler+timer+timeTask方法:

  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. Timer timer = new Timer();
  11. TimerTask timerTask = new TimerTask() {
  12. @Override
  13. public void run() {
  14. Message message = new Message();
  15. message.what = 1;
  16. handler.sendMessage(message);
  17. }
  18. };
  19. 主线程中调用:timer.schedule(timerTask,1000,500);//延时1s,每隔500毫秒执行一次run方法

3.Thread+handler方法:

  1. 1 Handler handler = new Handler() {
  2. 2 @Override
  3. 3 public void handleMessage(Message msg) {
  4. 4 if (msg.what == 1){
  5. 5 //do something
  6. 6 }
  7. 7 super.handleMessage(msg);
  8. 8
  9. 9 }
  10. 10 };
  11. 11
  12. 12 class MyThread extends Thread {//这里也可用Runnable接口实现
  13. 13 @Override
  14. 14 public void run() {
  15. 15 while (true){
  16. 16 try {
  17. 17 Thread.sleep(1000);//每隔1s执行一次
  18. 18 Message msg = new Message();
  19. 19 msg.what = 1;
  20. 20 handler.sendMessage(msg);
  21. 21 } catch (InterruptedException e) {
  22. 22 e.printStackTrace();
  23. 23 }
  24. 24
  25. 25 }
  26. 26 }
  27. 27 }
  28. 28 主线程中调用:new Thread(new MyThread()).start();

二、三种延时的快捷方法: 
1.Handler的postDelayed方法:

  1. 1 new Handler().postDelayed(new Runnable() {
  2. 2
  3. 3 @Override
  4. 4 public void run() {
  5. 5 //do something
  6. 6 }
  7. 7 }, 1000); //延时1s执行

2.timer + TimerTask方法:

  1. 1 timer = new Timer();
  2. 2 timer.schedule(new TimerTask() {
  3. 3 @Override
  4. 4 public void run() {
  5. 5 //do something
  6. 6 }
  7. 7 },1000);//延时1s执行

3.Thread方法:

  1. 1 new Thread(new MyThread()).start();
  2. 2 new Thread(new Runnable() {
  3. 3 @Override
  4. 4 public void run() {
  5. 5 try {
  6. 6 Thread.sleep(1000);//延时1s
  7. 7 //do something
  8. 8 } catch (InterruptedException e) {
  9. 9 e.printStackTrace();
  10. 10 }
  11. 11 }
  12. 12 }).start();

转载地址:http://blog.csdn.net/u011710991/article/details/50133455

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/240646
推荐阅读
相关标签
  

闽ICP备14008679号