`
zengyan2012
  • 浏览: 414983 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

android 定时器 总结

阅读更多

转自:http://apps.hi.baidu.com/share/detail/23830725

 

在android中,經常用到的定時器主要有以下幾種實現:
一、採用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=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();取消計時器的執行。

 

-------------------------------------------------------------2011/3/23------------------------------------------------------------------

如果我們採用第一種方法,如何結束掉線程呢?當然如果你的程序在run方法裡有做控制,線程就不用結束,當run方法運行完畢,線程也就隨之結束。那今天就說一下在Handler裡面對線程的控制,如果想要在Handler裡面結束線程,可用:

Thread.currentThread().interrupt();

Thread.currentThread()可以獲得消息發送的線程,interrupt即是中斷。

分享到:
评论

相关推荐

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

    ### Android定时器的三种实现方式 在Android应用开发过程中,定时任务是非常常见的一种需求场景,例如更新UI界面、定期检查网络状态或者定时提醒等。本文将详细介绍三种常用的Android定时器实现方式及其具体应用...

    Android定时器

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

    android线程,处理器,定时器总结

    android开发中常用的线程通信,消息发送和接收,消息处理及定时器的使用

    android 定时器的实现

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

    android定时器的demo

    总结来说,这个“android定时器的demo”涵盖了Android开发中的关键知识点:使用`CountDownTimer`实现倒计时、通过`Random`生成随机数用于模拟登录验证,以及利用`WebView`加载和显示本地HTML文件。这些技能对于...

    Android 定时器,图片闪烁问题

    总结来说,解决Android中的定时器问题,关键在于理解Android的UI更新机制,合理使用线程,以及确保良好的定时器管理。通过优化定时器的使用,可以避免图片闪烁、错位和时间不同步等问题,提高用户界面的流畅性和应用...

    Android定时器功能实现方法

    总结,Android中的定时器功能可以通过`Handler`实现简单的定时任务,而`AlarmManager`适用于更精确或长期的定时需求。开发者应根据实际场景选择合适的方法,同时关注性能和电池消耗。在使用过程中,确保正确管理和...

    android 应用 源代码——定时器

    总结,Android应用中的定时器是实现各种定时功能的关键,如轮询服务、倒计时、自动更新等。理解其工作原理和正确使用方法,对于提升应用体验和性能至关重要。通过学习提供的源代码,可以深化对定时器实际应用的理解...

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

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

    使用AlarmManager启动广播、服务、页面(Android定时器)

    总结,`AlarmManager`是Android中进行定时任务调度的重要工具,可以灵活地启动BroadcastReceiver、Service和Activity。在实际开发中,应根据需求选择合适的启动方式,并注意优化以降低对系统资源的影响。

    android时间定时器

    总结来说,Android的定时器机制为开发者提供了灵活的定时任务处理方式。了解并熟练掌握`AlarmManager`、`Handler`以及`CountDownTimer`的使用,将对提升Android应用的功能性和用户体验大有裨益。在实际开发中,应...

    android平台定时器介绍

    本文将详细介绍三种常见的Android定时器机制及其使用区别。 首先,我们来看第一种方式,即通过Handler与线程的`sleep(long)`方法配合。这种方式的核心在于创建一个Handler实例来处理接收到的消息,以及一个实现了...

    Android定时器和Handler用法实例分析

    总结来说,Android开发中,`Timer`用于计划定时任务,`Handler`则用于在主线程中处理来自其他线程的消息,以确保UI更新的安全性。同时,`Runnable`可以与`Handler`结合,实现延时或周期性的任务执行。理解并熟练掌握...

    Android定时执行任务总结demo

    在这个demo中,我们重点关注`AlarmManager`,它是Android系统级的定时器,适用于长时间、低频率的任务调度。 1. **AlarmManager**: - `AlarmManager`是Android系统服务,可以安排一次性或者周期性的任务。通过`...

    android定时器

    在Android开发中,定时任务是十分常见的需求,例如...总结,Android中的定时器选择取决于具体需求,如任务类型、执行频率、对精确度的要求以及电池效率。开发者应根据实际应用场景,合理选择并使用合适的定时器机制。

    Android定时器实现的几种方式整理及removeCallbacks失效问题解决

    总结来说,Android中使用Handler + Runnable实现定时器是一种常用且灵活的方法。需要注意的是,当涉及到Activity的生命周期时,必须谨慎处理Runnable对象的生命周期,以防止出现定时器无法正常关闭的情况。对于长...

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

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

    android demo,使用Runnable和Handler的特性实现每个3s的定时器

    总结起来,这个`android demo`提供了一个实用的示例,帮助开发者掌握如何在Android环境中利用`Runnable`和`Handler`实现定时任务。这种技术在游戏、实时数据刷新、动画以及其他需要定时执行操作的场景下都非常常见。...

    android时间定时器,短信验证,定时刷新

    总结来说,Android开发中,结合使用时间定时器和Handler可以方便地实现定时任务,比如定时刷新界面或定时验证短信。这种技术在很多应用场景中都是必不可少的,比如实时数据显示、自动刷新数据等。通过熟练掌握和应用...

    Android倒计时 计时器

    总结一下,Android的倒计时和计时器机制提供了丰富的功能,用于处理时间相关的任务。`CountDownTimer`适合简单的倒计时场景,而`Timer`和`TimerTask`更适合需要周期性执行任务的情况。在实际开发中,结合线程管理,...

Global site tag (gtag.js) - Google Analytics