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

最新文章
· 精简和简洁的设计
· 平面设计专业毕业以后
· 平面设计专业毕业以后
· 平面设计专业怎么样?
· 美术设计及版面编排两
· 平面设计师是用设计语
· 平面设计的定义泛指具
· 平面设计也称为视觉传
当前位置:邳州电脑培训 --学校动态
      
Android中定时器的3种实现方法

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

 在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, 00);

    }

};



2. 启动计时器

handler.postDelayed(runnable, 00);//每两秒执行一次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, 00, 00);



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


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


 
发表评论】【打印新闻】【关闭窗口  
最新学校动态
  · 精简和简洁的设计 [2023/5/17]
  · 平面设计专业毕业以后可以做创意指 [2023/5/17]
  · 美术设计及版面编排两者的工作内容差不多 [2023/4/12]
  · 平面设计师是用设计语言将产品或被设计媒体的特点和潜在价值 [2023/4/12]
  · 平面设计属于广告设计类 [2023/3/9]
  · 学习平面设计需要有一定的耐心和毅力 [2023/3/9]
  · 平面设计需要一定的审美素质 [2023/2/22]
  · 排版是平面设计中的一个重要环节 [2023/2/22]
  · 设计原则是平面设计的基础 [2023/1/10]
  · 在掌握了专业知识之后需要不断学习 [2023/1/10]
  · 学习平面设计的初期,需要了解一些基本的设计概念和工具 [2022/12/23]
  · 面设计是一门充满创意、实践性很强的艺术学科 [2022/12/23]
  · 在平面设计中色彩是表现形式的重点 [2022/11/20]
  · 正文即传播内容一般采用说明文的形式 [2022/11/20]
  · 文字是平面设计中不可或缺的核心元素 [2022/10/16]

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

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