项目上面的部分操作需要使用到定时器进行周期性的控制。网络上面对于定时器的操作通常有三种实现方法。

我是通过Timer与TimerTask相结合实现的定时器功能。具体实现过程如下:

第一步,得到Timer的实例化对象

Timer timer= new Timer() ;

第二步,实例化TimerTask对象

TimerTask timerTask = new TimerTask(){

publicvoid run(){

//Doing something

}

}

实例化TimerTask对象的时候,需要重写它的run()方法,然后在这个方法体内增加需要执行的具体操作。比如  输出一句话,发送一个消息之类的。

第三步,启动定时器

Timer.schedule(TimerTask, delay, period) ;

这样创建并启动一个定时器的工作就完成,但是在实际使用的过程中,可能会需要一些其他方面的操作手段。

因为在项目程序运行过程中,某个时刻定时器的参数被修改,比如delay,period。为了及时的使用最新的正确的数据,就需要对已经存在的定时器进行关闭并且使用新的参数重新创建并启动。

第一步,取消TimerTask,并在定时器Timer队列中将其删除。

If(timerTask == null){

timerTask .cancel() ;

第二步,重新启动定时器

If(timerTask!= null){

timerTask = new TimerTask(

public void run(){

//do something

) ;

timer.schedule(timeTask,delay,period) ;

值得注意的地方是被执行了cancle()方法之后的TimerTask,在重新启动定时器的时候,必须重新实例化TimerTask才OK,不然会报“java.lang.IllegalStateException:TimerTask is scheduled already”的错误。每个定时器任务TimerTask只能被放置一次

android Timer与TimerTask的相关操作的更多相关文章

  1. android Timer and TImerTask

    android Timer and TImerTask Caused by: java.lang.IllegalStateException: TimerTask is scheduled alrea ...

  2. Android简易实战教程--第四十八话《Android - Timer、TimerTask和Handler实现倒计时》

    之前本专栏文章中的小案例有写到:第三十九话<Chronometer实现倒计时> 以及使用异步实现倒计时:第三十三话< AsyncTask异步倒计时> 本篇文章 结合Timer. ...

  3. Android Timer和TimerTask

    以下内容根据 The JavaTM Tutorial 和相关API doc翻译整理,以供日后参考: 1.概览 Timer是一种定时器工具,用来在一个后台线程计划执行指定任务.它可以计划执行一个任务一次 ...

  4. Android中程序包的相关操作

    //获取系统中已经安装的应用程序 List<PackageInfo> packageinfos=this.getPackageManager().getInstalledPackages( ...

  5. Java中的Timer和TimerTask在Android中的用法(转)

    转自:http://blog.csdn.net/zuolongsnail/article/details/8168689 在开发中我们有时会有这样的需求,即在固定的每隔一段时间执行某一个任务.比如UI ...

  6. Android 开发 重写定位器类Timer与TimerTask

    class AttendanceTimer extends Timer { private static final int LOCATION = 0x01; private static final ...

  7. android Timer TimerTask用法笔记

    Android中经常会遇到执行一些周期性定时执行的任务.初学的时候经常会使用Thread.sleep()方法.在android中,有Timer可以专门干这个事情. 先看看Timer.class中都是些 ...

  8. Java中定时器相关实现的介绍与对比之:Timer和TimerTask

    Timer和TimerTask JDK自带,具体的定时任务由TimerTask指定,定时任务的执行调度由Timer设定.Timer和TimerTask均在包java.util里实现. 本文基于java ...

  9. android,结合Timer和TimerTask实现定时任务

    当我们需要每隔一段时间执行一个任务的时候,就需要使用TimerTask了,下面是入门的例子, 值得注意的是Timer.TimerTask,cancel之后就需要重新声明一个对象,否则会报错的哦~ pa ...

随机推荐

  1. Bootstrap3 排版-地址

    让联系信息以最接近日常使用的格式呈现.在每行结尾添加 可以保留需要的样式. Twitter, Inc. 795 Folsom Ave, Suite 600 San Francisco, CA 9410 ...

  2. eclipse properties 插件

    eclipse properties 插件安装,分享牛,分享牛原创.eclipse properties 编辑器使用. eclipse因为是原生的,可能集成的插件不多,需要自己手动安装.eclipse ...

  3. Swift按照数组元素出现的次数及大小排序

    要求如下: 1.已知一个数组,按照单个元素在数组中出现的次数作为重新排序的依据,个数多的排在前面 2.相同个数时候,元素值大的排前面 例子: [1, 2, 2, 3, 5, 5] 经过计算得到的结果是 ...

  4. Android Studio提交库至Bintray jCenter从入门到放弃

    文:http://blog.csdn.net/sk719887916/article/details/52473914 作者:Tamic 详细文章请看:[Gradle系列]Gradle发布module ...

  5. Android基于JsBridge封装的高效带加载进度的WebView

    Tamic http://blog.csdn.net/sk719887916/article/details/52402470 概述 从去年4月项目就一直用起了JsBridge,前面也针对jsBrid ...

  6. Dynamics CRM2013 从subgrid中打开快速创建窗体创建数据

    在页面上使用subgrid时,在subgrid中新建数据时需要跳转到另一个页面,这种操作比较麻烦且很不友好,这时我们想到了快速创建窗体,像下图这样直接在当前页上方下拉出现一个窗体,填写内容后点击保存就 ...

  7. VisualStudio2010配置OpenCV的一种一劳永逸的方法

    用VS使用OpenCV的时候,又不想全局配置,每次都要配置简直烦死了. 鉴于此,给大家介绍一种简便一点的方法. 配置环境的前提是:成功安装了OpenCV合适的版本. 我这里用的是OpenCV2.4.9 ...

  8. tomcat启动批处理——setclasspath.bat

    除了上面两个批处理,还有一个比较重要的脚本,即是setclasspath.bat,它主要负责寻找.检查JAVA_HOME和JRE_HOME两个变量. ************************* ...

  9. Java并发框架——AQS之如何使用AQS构建同步器

    AQS的设计思想是通过继承的方式提供一个模板让大家可以很容易根据不同场景实现一个富有个性化的同步器.同步器的核心是要管理一个共享状态,通过对状态的控制即可以实现不同的锁机制.AQS的设计必须考虑把复杂 ...

  10. androidApp的完全退出

    思路:搜集整个工程所有的activity,通过循环把工程中所有的activity都关闭. 搜集工程中的activity,可以由单例模式实现, [java] view plaincopy import  ...