标签:
Android中经常会遇到执行一些周期性定时执行的任务。初学的时候经常会使用Thread.sleep()方法。在android中,有Timer可以专门干这个事情。
先看看Timer.class中都是些什么。
看到前几行代码的时候就应该知道了....
Timer中有个静态内部类:TimerImpl
TimerImpl有个静态内部类:TimerHeap
TimerImpe继承Thread,用来实现具体的任务执行内容。
TimerHeap定义了一个TimerTask的数组,用来管理多个TimerTask的分配。
使用静态内部类的好处,是可以多个Timer对象可以共用。
下面看看TimerTask.class
好吧,比Timer还简单,就是Runnable的一个实现。只不过多了几个对象
lock:对象锁,在Timer中对TimerTask操作的时候,保证同步,线程安全。
cancelled:标志变量,当前TimerTask是否已经被取消执行。
when:Timer执行TimerTask时,延时多少时间。
period:Timer执行TimerTask时,周期时间。
fixedRate:是否已固定频率执行,比如一个TimerTask,执行周期为3秒,可能一个任务3秒内没有执行完毕,fixedTate为true,那么接下来的任务依然会执行。如果为fasle,接下来的任务会等到之前的执行完毕后,继续周期执行。
使用方法也很简单:
最后一行代码:timer.schedule(task,1000,3000)意思是:在1秒之后 以周期为3秒 执行task。
android Timer TimerTask用法笔记
标签:
原文地址:http://www.cnblogs.com/Theone2014/p/4826467.html