android Timer与TimerTask的相关操作
项目上面的部分操作需要使用到定时器进行周期性的控制。网络上面对于定时器的操作通常有三种实现方法。
我是通过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的相关操作的更多相关文章
- android Timer and TImerTask
android Timer and TImerTask Caused by: java.lang.IllegalStateException: TimerTask is scheduled alrea ...
- Android简易实战教程--第四十八话《Android - Timer、TimerTask和Handler实现倒计时》
之前本专栏文章中的小案例有写到:第三十九话<Chronometer实现倒计时> 以及使用异步实现倒计时:第三十三话< AsyncTask异步倒计时> 本篇文章 结合Timer. ...
- Android Timer和TimerTask
以下内容根据 The JavaTM Tutorial 和相关API doc翻译整理,以供日后参考: 1.概览 Timer是一种定时器工具,用来在一个后台线程计划执行指定任务.它可以计划执行一个任务一次 ...
- Android中程序包的相关操作
//获取系统中已经安装的应用程序 List<PackageInfo> packageinfos=this.getPackageManager().getInstalledPackages( ...
- Java中的Timer和TimerTask在Android中的用法(转)
转自:http://blog.csdn.net/zuolongsnail/article/details/8168689 在开发中我们有时会有这样的需求,即在固定的每隔一段时间执行某一个任务.比如UI ...
- Android 开发 重写定位器类Timer与TimerTask
class AttendanceTimer extends Timer { private static final int LOCATION = 0x01; private static final ...
- android Timer TimerTask用法笔记
Android中经常会遇到执行一些周期性定时执行的任务.初学的时候经常会使用Thread.sleep()方法.在android中,有Timer可以专门干这个事情. 先看看Timer.class中都是些 ...
- Java中定时器相关实现的介绍与对比之:Timer和TimerTask
Timer和TimerTask JDK自带,具体的定时任务由TimerTask指定,定时任务的执行调度由Timer设定.Timer和TimerTask均在包java.util里实现. 本文基于java ...
- android,结合Timer和TimerTask实现定时任务
当我们需要每隔一段时间执行一个任务的时候,就需要使用TimerTask了,下面是入门的例子, 值得注意的是Timer.TimerTask,cancel之后就需要重新声明一个对象,否则会报错的哦~ pa ...
随机推荐
- how to output quotes in bash prompt
introduction In certain situations, quotes are required to be output in the command prompt. To do th ...
- 如何找出Xcode中不同版本Swift的路径
我们知道Xcode中可能包含不知一个Swift的版本,那么我们如何找到它们对应的路径呢? 熟悉unix shell命令的童鞋都知道有一个find指令,在我们已知Xcode路径时,我们可以在其中找到Sw ...
- PHP 针对多用户 实现头像更换
成品图 思路 登陆页面 表单制作 验证码制作 JavaScript刷新验证码 验证页面 验证逻辑 页面跳转 header函数 Meta标签 JavaScript 上传页面 个人主页 上传核心 最终结果 ...
- FORM调用FORM(标准调客户化&客户化调标准)并执行查询的实现研究
一.先来个比较简单的,标准FORM调用客户话FORM并执行查询 1.修改CUSTOM.PLL,使用 fnd_function.execute实现打开和传递参数 参考例子如下 PROCEDURE eve ...
- 破解Oracle ERP 密码
1. 写作目的 1 2. 利用Toad或其它pl/sql工具在Oracle ERP Database中建立Package,源码如下 1 (1). ...
- BASH如何获得某个目录下的某类文件的文件名
假设某个目录下有一堆以jpeg为后缀的文件名,我们需要在另一个目录中获得他们的文件名,并输出. 可以联合使用ls,awk,sed等命令来完成. 方法一: 使用ls列出目录下以.jpeg为结尾的文件,然 ...
- activiti uuid主键
1.1.1. activiti默认主键生成方式 ; 下面我们看一下主键的生成策略:主键的生成策略定义在IdGenerator接口中,接口定义如下所示: public interface IdGene ...
- 如何将dtb反编译成dts
点击打开链接 由于device tree会将一个node的信息分布在各个文件里,查看起来很不方便,比如如下例子,ldb在三个文件中都有配置: imx6qdl-sabresd.dtsi: [plain] ...
- java的properties文件-jdbc优化编程(五)
通过配置文件能够减小我们的工作量,带来方便. 建立properties文件 1.首先是新建一个dbconfig.properties.然后添加如下代码: driver=com.mysql.jdbc.D ...
- Java基础---Java---IO流-----File 类、递归、删除一个带内容的目录、列出指定目录下文件夹、FilenameFilte
File 类 用来将文件或者文件夹封装成对象 方便对文件与文件夹进行操作. File对象可以作为参数传递给流的构造函数 流只用操作数据,而封装数据的文件只能用File类 File类常见方法: 1.创建 ...