android Timer与TimerTask的相关操作
2014-11-01 17:35
316 查看
项目上面的部分操作需要使用到定时器进行周期性的控制。网络上面对于定时器的操作通常有三种实现方法。
我是通过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只能被放置一次
我是通过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与TimerTask的相关操作
- android之和时间相关的DatePicker/TimerPicker/Calendar/DatePickerDialog/TimePickerDialog
- Android的Task和Activity相关
- Android电话相关的操作 - 打电话,接电话,挂电话
- Android电话相关的操作 - 打电话,接电话,挂电话
- android TimerTask 的简单应用
- Android中Exif的操作以及Camera应用中相关代码优化方案
- android TimerTask 的简单应用,以及java.lang.IllegalStateException: TimerTask is scheduled already错误的解决方法
- Android中定时器Timer和TimerTask的启动,停止,暂停,继续等操作实例
- android google map apiKey 相关操作
- android中关于手机屏幕的相关操作(获取屏幕的宽高等操作)
- Android的Task和Activity相关
- Android对话框相关操作技巧讲解
- Android开发应用之计时器(TimerTask和Timer)
- android TimerTask 的简单应用
- 关于android中操作sim卡联系人的相关内容
- Android中使用定时器TimerTask类介绍
- android google map apiKey 相关操作
- android google map apiKey 相关操作