转载自:http://www.android-study.com/pingtaikaifa/508.html

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

一、采用Handler与线程的sleep(long)方法
二、采用Handler的postDelayed(Runnable, long)方法
三、采用Handler与timer及TimerTask结合的方法

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

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();

二、采用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);

【转】 Android定时器相关推荐

  1. Android开发之实现每隔一段时间触发定时器android定时器

    老套路看图: 每隔20秒重新触发 实际上实现也很简单我们可以通过android原生自带的定时器完成,说下思路: 1.首先实现android定时器开启触发 2.在定时器结束的方法中再次触发开启定时器即可 ...

  2. android 定时换图片,Android 定时器实现图片的变换

    Android 定时器实现图片的变换 在Android中,要让每秒进行一次ui更新,就需要利用到定时器和handler,message的结合,如果不使用handler就不能达到更新ui的效果,我的理解 ...

  3. android实现10ms定时器,Android定时器不低于〜120ms分辨率

    我一直试图通过TCP Socket连接将我的Android手机传感器数据发送到我的PC.我的目标是刷新10-40毫秒,我正在研究手机传感器在测量技术方面的潜在应用,这些测量技术包括将手机放在秋千上,并 ...

  4. Android 定时器+倒计时 仿淘宝秒杀

    目录结构 效果图: imageViewHolder public class imageViewHolder extends RecyclerView.ViewHolder {public Image ...

  5. Android定时器Timer和TimerTas的使用

    1. 概述 Timer是一种定时器工具,用来在一个后台线程计划执行指定任务.它可以计划执行一个任务一次或反复多次. TimerTask一个抽象类,它的子类代表一个可以被Timer计划的任务. Time ...

  6. android定时器取消,Android定时器崩溃取消

    我有一个定时器运行,然后熄灭,并做了一些事情,定时器启动罚款.Android定时器崩溃取消 然后我想要做的是点击一个按钮,然后创建一个电子邮件.除了在计时器运行时单击该按钮之外,一切正常,应用程序崩溃 ...

  7. android studio 定时器,Android定时器和Handler用法实例分析

    本文实例讲述了Android定时器和Handler用法.分享给大家供大家参考.具体分析如下: 一.环境: 主机:WIN8 开发环境:Android Studio 二.定时器使用示例: 初始化: //定 ...

  8. android 定时器重置,Android定时器延迟和重置

    我确定在这里的某处有类似的问题,但我似乎无法找到它.Android定时器延迟和重置 这是我正在尝试做的. 假设我已连接到服务器,并且如果在过去5分钟内没有用户拨打任何电话,我想断开连接.但是,如果连一 ...

  9. android实现10ms定时器,本文实例讲述了Android定时器和Handler用法。分享给大家供大家参考。具体分析如下:一、环境:主机:WIN8开发环境:Android Studio...

    本文实例讲述了Android定时器和Handler用法.分享给大家供大家参考.具体分析如下: 一.环境: 主机:WIN8 开发环境:Android Studio 二.定时器使用示例: 初始化: //定 ...

  10. Android定时器Timer简单使用

    Android定时器Timer简单使用 Timer简介 Timer使用 总结 Timer简介 Timer(计时器)位于 java.util包下,可用于创建定时任务,任务可以安排为一次性执行,也可以定期 ...

最新文章

  1. 20个开源项目助你快速掌握区块链应用开发,JS Go PHP Python Ruby
  2. codevs2693 上学路线(施工)
  3. 【AI-1000问】为什么深度学习图像分类的输入多是224*224
  4. ECMS系统服务器死机的处理,内存问题服务器死机一例
  5. python arcgis 图书_arcgis python
  6. (三)MySQL入门,看我就够了!!!
  7. Redis Cluster集群的搭建与实践
  8. Jsp+Ssm+Mysql在线考试系统
  9. DG SG childSG fatherSG
  10. 武当功夫在现代2 视频
  11. SSR pac模式配置和Gitee转移图床失败的尝试
  12. 360p2刷无线打印服务器,360P2路由器怎么修改无线信道?-360安全路由P2的WiFi信道修改教程?...
  13. 在excel中批量插入分页符
  14. 名悦集团:3月雨季来袭,行车上路安全指南请收好
  15. 昆石VOS3000_2.1.4.0安装脚本
  16. Java白盒测试三角形函数_白盒测试实验报告-三角形形状-山东大学
  17. fortran与java的区别_fortran与c或java比较
  18. 四. 常用EMC防护器件选型学习笔记
  19. 【蓝桥杯真题】 (一) 递归与递推 (Acwing 蓝桥杯 笔记)
  20. 新概念英语第一册——1-4笔记

热门文章

  1. 第114天:Ajax跨域请求解决方法(二)
  2. 第二次作业 项目质量管理重点知识梳理
  3. Android 之 下拉框(Spinner)的使用
  4. 数据库返回刚插入记录的ID
  5. 桌面虚拟化之用户体验篇
  6. 【深度学习】基于Keras的手写体识别
  7. 由通项为In(1+1\n)的级数引申...
  8. unsigned int数相减时候的trick
  9. 人人都能看懂的LSTMGRU
  10. python day23