首页 > 代码库 > Android定时器,更新数据

Android定时器,更新数据

做个笔记,Android中常用的定时器,用于定时更新ui数据等。


1.Handler + Runnable定时器

private Handler mHandler;

private Runnable mRunnable;

 

mHandler = new Handler();

    mRunnable = new Runnable() {

      public void run () {

         //更新数据的方法

        update();

      }

      };

//定时启动线程(执行的线程,时间毫秒)

 mHandler.postDelayed(mRunnable,4000);

     

//移除Handler中的线程

mHandler.removeCallbacks(mRunnable);

 ==================================================

2.Timer +TimerTask 定时器

Timertimer = new Timer();

timer.schedule(new TimerTask() {

@Override

public void run() {

// 执行的方法

sendMSG(); 

}

}, 4000);  //执行的时间毫秒


3.//发送message消息

void sendMSG() {

//handler message消息

Message message = new Message();

message.what = MSG;

mHandler.sendMessage(message);

}

------Handler接收消息机制------

    class MyHandlerextends Handler { 

        @Override

        public void handleMessage(Message msg) {

            // TODO Auto-generated method stub

            super.handleMessage(msg);

            if (msg.what ==MSG) {            

               //更新数据的方法

      update();

                }

        }

    };


4.每隔一段时间执行的定时器

 private Timer timer;  

private Handler mShowHandler = new Handler();


//启动定时器

if (timer == null) {  
             timer = new Timer();  
             timer.scheduleAtFixedRate(new RefreshTask(), 0, 800);  //每800毫秒执行一次
         }  

//计时器

class RefreshTask extends TimerTask {

        @Override
        public void run() {
                //可在此加入判断,判定什么情况执行更新

// if( i=0 ) {
            mShowHandler.post(new Runnable() {

                @Override
                public void run() {
//更新数据方法

update();

                  }
                }  

//                    }
            });

//停止计时器

  if(timer != null){
            timer.cancel();  
            timer = null;  
            }

---------------------------------------------------------------------------------------------------