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

最新文章
· 关于计算机专业,你知
· 想学好影视动漫就看一
· 你必须知道的影视后期
· 电脑培训班课程内容是
· 电脑培训班有哪些科目
· 新手必学电脑基础维修
· 电脑中病毒了怎么办:
· 电脑重置恢复出厂设置
当前位置:邳州电脑培训 --学校动态
      
Android中定时器的3种实现方法

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

 在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();取消计时器的执行。


 
发表评论】【打印新闻】【关闭窗口  
最新学校动态
  · 关于计算机专业,你知道哪些? [2020/2/14]
  · 想学好影视动漫就看一下四点 [2020/2/14]
  · 你必须知道的影视后期制作 10 个技巧 [2020/2/14]
  · 电脑重置恢复出厂设置的方法 [2020/1/4]
  · 电脑开启ahci模式蓝屏解决方法: [2020/1/4]
  · 电脑安装Windows系统的BIOS设置介绍 [2020/1/4]
  · Alt+Tab可以切换最近操作的两个窗口 [2019/12/2]
  · 十个最常用的使用技巧 [2019/12/2]
  · 电脑剩余空间不足,这样清理能一下子多出几十个G! [2019/12/2]
  · 电脑技术教程 [2019/11/4]
  · 计算机网络中的几个常用的命令行 [2019/11/4]
  · 一些实用的电脑操作技巧 [2019/11/4]
  · 为啥程序员下班后只关显示器从不关电脑? [2019/10/8]
  · 如何提升电脑开机速度? [2019/10/8]
  · 电脑蓝屏的解决办法 [2019/10/8]

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

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