Android 定时器Timer

定义一个定时器及定义一个TimerTask处理handler事件

Timer timer = new Timer();
    TimerTask task = new TimerTask() {
        @Override
         public void run() {
                                Thread thread = new Thread(new Runnable() {
                                    @Override
                                    public void run() {
                                        Message message = new Message();
                                        message.what = 2;
                                        mHandler.sendMessage(message);
                                    }
                                });
                                thread.start();
                            }
    };     

##开启一个定时器

 timer.schedule(task,200,10000);

说明:
第一个参数是定时器要做的任务(task),这里是处理handler 消息
第二参数是什么事件做这个任务(task),这里写的是200ms,即200ms后timer开始处理任务。
第三个参数是执行任务的时间间隔,即每隔10s执行一次任务(task),如果不写的话,定时器只执行一次任务。

定时器的请求周期

定时器如果不销毁的话会一直执行,但定时器一直执行的话,那么程序很可能就会崩溃所以说定时器用完要及时的关闭
定时器的开启一般会写在onStart里面
定时器的销毁会写在onStop里面

销毁定时器

timer.cancel();

离开本界面的时候就执行这句话那么定时器就不会在执行了,进入本界面时在onStart中执行定时器那么就开启了定时器。
注意: timer的开启和销毁不一定定义在onStart()或onDestroy()方法中。

一个定时器代码

 touchtimer = new Timer();
                        touchtimer.schedule(new TimerTask() {
                            @Override
                            public void run() {
                                Thread thread = new Thread(new Runnable() { //定义一个线程
                                    @Override
                                    public void run() {
                                        Message message = new Message();//定义一个消息message
                                        message.what = 2;                 //自定义一个消息的what属性(区分不同消息)
                                        mHandler.sendMessage(message); //发送消息
                                    }
                                });
                                thread.start();                  //开启线程
                            }
                        },300,200);
 public Handler mHandler = new Handler() {       //定义一个Handler并来处理消息
        public void handleMessage(Message msg) { //接受并处理线程发送来的消息
            switch (msg.what) {                 //识别线程发送的消息的what
                case 2:                         //根据what执行不同的事件方法,这里只定义里一个what
                   执行定义的事件或事件处理方法;   
                    break;
                default:
                    break;
            }
            super.handleMessage(msg);
        };
        protected void onDestroy() {                 //销毁timer
            super.onDestroy();
            timer.cancel();
           } 
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值