Android中使用Handler和Runnable做定时器

来源:赵克立博客 分类: Android 标签:Android发布时间:2014-11-07 17:11:00最后更新:2018-04-12 12:39:03浏览:2337
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2018-04-12 12:39:03
温馨提示:
学无止境,技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章

下面实现一个每隔一段时间执行一段代码

第一种使用handler自带postDelyed实现

Handler handler = new Handler();
Runnable runable = new Runnable() {
    @Override
    public void run() {
        //下面写上你要处理的代码,
        //.........
        //两秒后再次执行,循环调用
        handler.postDelayed(this, 2000);
    }
};
//上面设置完后在初始化的地方要启动一下
handler.postDelayed(runable, 2000);

handler.removeCallbacks(runable);//移除定时器

第二种新建一个线程和handler结合实现

创建一个线程类继承Runnable类

// handler类接收数据  
Handler handler = new Handler() {  
    public void handleMessage(Message msg) {  
        if (msg.what == 1) {  
            tvShow.setText(Integer.toString(i++));  
            System.out.println("receive....");  
        }  
    };  
};  
// 线程类  
class ThreadShow implements Runnable {  
    @Override  
    public void run() {  
        // TODO Auto-generated method stub  
        while (true) {  
            try {  
               //延时指定时间
                Thread.sleep(1000);  
                //发送指定消息到ui线程进行处理
                Message msg = new Message();  
                msg.what = 1;  
                handler.sendMessage(msg);  
                System.out.println("send...");  
            } catch (Exception e) {  
                // TODO Auto-generated catch block  
                e.printStackTrace();  
                System.out.println("thread error...");  
            }  
        }  
    }  
}



微信号:kelicom QQ群:215861553 紧急求助须知
Win32/PHP/JS/Android/Python