今天是: 2019年9月16日 星期一 返回首页 | 电脑培训学校简介 | 学校新闻 | 我要报名 | 就业体系 | 专业设计 | 联系我们
 
 
本站导航
· 校园文化 · 学校动态
· 学校公告 · 婚纱设计
· 平面设计 · 室内装潢
· 办公文秘 · 办公自动化
· 职称计算机
联系方式
邳州市天翼电脑培训学校
联系人:胡老师
手机:13092300677
Q Q:439524682
邮箱:439524682@qq.com
网址:http://www.pzdnpx.com
地址:邳州市镇北一路铁路立交桥向东10米天翼电脑培训学校

最新文章
· win7系统异常关机
· 想要访问win7存储
· Android核心模
· 知道不知道没有任何一
· 怎么判断自家的电脑有
· Android中定时
· MAC可以方便的将电
· 教你认识电脑主板上主
当前位置:邳州电脑培训 --学校动态
      
Android中定时器的3种实现方法

发布时间:2019/9/2  新闻类别:学校动态 点击次数:13

 在Android开发中,定时器一般有以下3种实现方法:



一、采用Handler与线程的sleep(long)方法

二、采用Handler的postDelayed(Runnable, long)方法

三、采用Handler与timer及TimerTask结合的方法

下面逐一介绍:


一、采用Handle与线程的sleep(long)方法

Handler主要用来处理接受到的消息。这只是最主要的方法,当然Handler里还有其他的方法供实现,有兴趣的可以去查API,这里不过多解释。


1. 定义一个Handler类,用于处理接受到的Message。

Handler handler = new Handler() {

    public void handleMessage(Message msg) {

        // 要做的事情

        super.handleMessage(msg);

    }

};



2. 新建一个实现Runnable接口的线程类,如下:

public class MyThread implements Runnable {

        @Override

        public void run() {

                // TODO Auto-generated method stub

                while (true) {

                        try {

                                Thread.sleep(10000);// 线程暂停10秒,单位毫秒

                                Message message = new Message();

                                message.what = 1;

                                handler.sendMessage(message);// 发送消息

                        } catch (InterruptedException e) {

                                // TODO Auto-generated catch block

                                e.printStackTrace();

                        }

                }

        }

}



3. 在需要启动线程的地方加入下面语句:

new Thread(new MyThread()).start();



4. 启动线程后,线程每10s发送一次消息。


二、采用Handler的postDelayed(Runnable, long)方法


这个实现比较简单一些。

1. 定义一个Handler类

Handler handler=new Handler();

Runnable runnable=new Runnable() {

    @Override

    public void run() {

        // TODO Auto-generated method stub

        //要做的事情

        handler.postDelayed(this, 2000);

    }

};



2. 启动计时器

handler.postDelayed(runnable, 2000);//每两秒执行一次runnable.


3. 停止计时器

handler.removeCallbacks(runnable);



三、采用Handler与timer及TimerTask结合的方法


1. 定义定时器、定时器任务及Handler句柄

private final Timer timer = new Timer(); 

private TimerTask task; 

Handler handler = new Handler() { 

    @Override 

    public void handleMessage(Message msg) { 

        // TODO Auto-generated method stub 

        // 要做的事情 

        super.handleMessage(msg); 

    }

};


2. 初始化计时器任务

task = new TimerTask() { 

    @Override 

    public void run() { 

        // TODO Auto-generated method stub 

        Message message = new Message(); 

        message.what = 1; 

        handler.sendMessage(message); 

    } 

};



3. 启动定时器

timer.schedule(task, 2000, 2000);



简要说一下上面三步提到的一些内容:


1. 定时器任务(TimerTask)顾名思义,就是说当定时器到达指定的时间时要做的工作,这里是想Handler发送一个消息,由Handler类进行处理。

2. java.util.Timer.schedule(TimerTask task, long delay):这个方法是说,dalay/1000秒后执行task.只执行一次。

java.util.Timer.schedule(TimerTask task, long delay, long period):这个方法是说,delay/1000秒后执行task,然后进过period/1000秒再次执行task,这个用于循环任务,执行无数次,当然,你可以用timer.cancel();取消计时器的执行。


 
发表评论】【打印新闻】【关闭窗口  
最新学校动态
  · 想要访问win7存储器该怎么去访问呢? [2019/9/2]
  · Android核心模块及相关技术? [2019/9/2]
  · Android中定时器的3种实现方法 [2019/9/2]
  · 教你认识电脑主板上主要的芯片及作用 [2019/8/2]
  · 电脑的核心 [2019/8/2]
  · 电脑老是卡顿怎么办 [2019/8/2]
  · 邳州市天翼电脑培训如何用小米手环给笔记本电脑解锁? [2019-7-3]
  · 电脑截图工具的快捷键如何设置 [2019-7-3]
  · 电脑截图快捷键是什么 [2019-7-3]
  · 邳州电脑培训让电脑自己学会玩游戏 [2019-6-3]
  · 邳州电脑培训我们应该怎样给自己的电脑降温呢? [2019-6-3]
  · 邳州电脑培训将强制采购电脑预装Linux操作系统 [2019-6-3]
  · 如何给Linux系统打补丁 [2019-5-5]
  · 关于php文件包含漏洞的解决方法 [2019-5-5]
  · stat系统调用系列包括了fstat、stat和lsta [2019-5-5]

 
 
电脑培训学校新闻中心 | 友情链接 | 网站地图 | 邳州电脑培训学校加入收藏 |邳州电脑培训学校设为首页
邳州电脑培训关键字: 邳州电脑培训 - 邳州电脑学校 - 邳州市天翼电脑培训学校 - 邳州电脑培训
Copyright © 2011-2012 邳州市天翼电脑培训学校 All Rights Reserved.

你是第667550位访客   建议使用1024×768以上分辨率,IE6.0以上浏览器    技术支持:
邳州慧网 银杏苗木 银杏树