Android中使用Handler和Runnable做定时器
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。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..."); } } } }