`

Android中定时器的3种实现方法

阅读更多

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

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

下面逐一介绍:

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

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

 

Handler handler = new Handler() {
    public void handleMessage(Message msg) {
        // 要做的事情
        super.handleMessage(msg);
    }
};

 

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

 

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

 

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

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

这个实现比较简单一些。

 

Handler handler=new Handler();
Runnable runnable=new Runnable() {
    @Override
    public void run() {
        // TODO Auto-generated method stub
        //要做的事情
        handler.postDelayed(this, 2000);
    }
};

 

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

 

handler.removeCallbacks(runnable);

 

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

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

 

task = new TimerTask() {
    @Override
    public void run() {
        // TODO Auto-generated method stub
        Message message = new Message();
        message.what = 1;
        handler.sendMessage(message);
    }
};

 

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

1
2
分享到:
评论

相关推荐

    android 中定时器的3个实现方法(均测试通过)

    android 中定时器的3个实现方法(均测试通过) 一、采用Handler与线程的sleep(long)方法 二、采用Handler的postDelayed(Runnable, long)方法 三、采用Handler与timer及TimerTask结合的方法

    android多种定时器实现

    在提供的压缩包文件`TimerTest` 中,可能包含了对这些定时器实现的测试代码,通过阅读和分析这些代码,你可以更深入地理解它们的工作原理和用法。同时,实践是最好的老师,动手尝试编写和调试这些定时器,将有助于你...

    android 定时器的三种方法

    在android中,经常用到的定时器主要有以下几种实现: 一、采用Handler与线程的sleep(long )方法 二、采用Handler的postDelayed(Runnable, long) 方法 三、采用Handler与timer及TimerTask结合的方法。 三种方法都有...

    [代码】android定时器的三种实现方式

    以上介绍了三种不同的Android定时器实现方式,每种方法都有其适用的场景。开发者可以根据实际需求选择最合适的方式来实现定时任务。需要注意的是,在实际开发中,还需要考虑内存泄漏等问题,确保应用程序的稳定性和...

    Android定时器功能实现方法

    本文将详细介绍Android中如何实现定时器功能,包括两种主要的定时机制:`Handler`与`AlarmManager`。 一、基于Handler的定时器 `Handler`是Android消息处理机制的一部分,它可以配合`Looper`和`Message`实现延时或...

    Android定时器和线程实现

    1. **Android定时器(Timer)** Android中的定时器并非直接内置在SDK中,而是通过Java的标准库`java.util.Timer`和`java.util.TimerTask`来实现。`Timer`类用于调度任务在未来某个时间点或定期执行,而`TimerTask`...

    Android 三种实现定时器详解及实现方法

    本文将详细介绍三种实现Android定时器的方法,并提供相应的代码示例。 ### 方法一:Handler + Thread 这种方法利用了Android的消息机制。首先创建一个`Handler`对象,然后在一个后台线程(通常是一个`Thread`)中...

    Android中定时器Timer和TimerTask的启动,停止,暂停,继续等操作

    下面是一个在Android中使用定时器Timer和TimerTask的启动,停止,暂停,继续等操作的demo。 需要注意的问题主要有两点: 1、Timer和TimerTask在调用cancel()取消后不能再执行 schedule语句 2、只能在UI主线程中更新...

    Android实现定时器的3种方法

    总之,理解并掌握这些定时器实现方式对Android开发者来说非常重要,因为它们在各种场景下都能发挥关键作用,如定期检查网络状态、执行后台任务或实现动画效果等。选择合适的方法可以提高程序性能和用户体验。

    Android中使用定时器的三种方法

    本文将详细介绍在Android中实现定时器的三种方法。 1. **Thread.sleep()** 方法 这种方法是通过在线程中调用`Thread.sleep(millis)`来实现定时。它会使得当前线程暂停执行指定的毫秒数。以下是一个简单的示例: ``...

    android 定时器demo

    本示例“android 定时器demo”主要聚焦于Android的定时器使用,通过源码分享,帮助开发者深入理解并掌握如何在Android应用中实现定时任务。下面将详细解释相关知识点。 1. **AlarmManager**: `AlarmManager` 是...

    Android三种不同实现方式的定时器

    在Android开发中,定时器一般有以下3种实现方法: 1、采用Handler与线程的sleep(long)方法 2、采用Handler的postDelayed(Runnable, long)方法 3、采用Handler与timer及TimerTask结合的方法

    Android Service 与 定时器

    本文将深入探讨`Android Service`和定时器的基本概念、使用方法以及如何结合它们来实现每3秒打印一次日志的功能。 **Android Service** `Android Service`是一种在后台运行且不与用户界面直接交互的应用组件。它...

    android 定时器的实现

    Android提供了两种主要的定时器实现:Java.util.Timer和AlarmService。这两种方法各有特点,适用于不同的场景。 首先,Java.util.Timer是Java标准库中的类,它允许开发者安排在特定时间运行的任务。在Android中,...

    Android实现定时器的五种方法实例详解

    跟handler自身实现的定时器相比,Timer可以做一些复杂的处理,例如,需要对有大量对象的list进行排序,在TimerTask中执行不会阻塞子线程,常常与handler结合使用,在处理完复杂耗时的操作后,通过handler来更新UI...

    Android定时器

    总结起来,Android定时器结合Handler和Message是实现UI动态更新的有效方式,尤其在游戏开发中,这种机制常用于创建流畅的动画效果和实时的游戏逻辑。通过合理使用这些组件,开发者可以为用户提供更丰富的交互体验。

    Android 闹铃定时器实现

    在Android开发中,闹钟(Alarm)和定时器(Timer)是两个常用的功能,它们用于在特定的时间点或间隔执行任务。本示例主要讲解如何使用Android的`AlarmManager`来实现一个简单的闹钟定时器功能。由于Android系统的...

    基于Android中实现定时器的3种解决方法

    "基于Android中实现定时器的3种解决方法" Android中实现定时器的3种解决方法是Android开发中非常重要的技术之一。在Android开发中,定时器一般有以下3种实现方法:一、采用Handler与线程的sleep(long)方法;二、...

    Android 实现定时器的四种方式总结及实现实例

    Android中实现定时器的四种方式 第一种方式利用Timer和TimerTask 1、继承关系 java.util.Timer 基本方法 schedule 例如: timer.schedule(task, delay,period); //delay为long,period为long:从现在起过delay毫秒...

Global site tag (gtag.js) - Google Analytics