Android定时器,更新数据

时间:2014-04-28 10:34:40   收藏:0   阅读:547

做个笔记,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;  
            }

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

Android定时器,更新数据,码迷,mamicode.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!