Android 三种定时器

2019-10-08  本文已影响0人  树新蜜蜂

通过实际项目的练习,掌握了几种android基本定时器和延时的用法,这里我想总结一下作为自己的收获,下面列出的是比较简洁的模式,方便简单地在程序中直接调用。
一、三种常用的定时器
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毫秒</pre>





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方法

3.Thread+handler方法:

 Handler handler = new Handler() {
          @Override
          public void handleMessage(Message msg) {
              if (msg.what == 1){
                  //do something
              }
              super.handleMessage(msg);
  
          }
     };
 
     class MyThread extends Thread {//这里也可用Runnable接口实现
         @Override
         public void run() {
             while (true){
                 try {
                     Thread.sleep(1000);//每隔1s执行一次
                     Message msg = new Message();
                     msg.what = 1;
                    handler.sendMessage(msg);
                 } catch (InterruptedException e) {
                     e.printStackTrace();
                 }
 
             }
         }
     }
 主线程中调用:new Thread(new MyThread()).start();
上一篇 下一篇

猜你喜欢

热点阅读