Android 中的定时任务一般有两种实现方式,一种是使用Java API 里提供的 Timer 类,一种是使用 Android 的Alarm 机制。两种方式在大部分情况下都能实现类似的效果,但是 Timer 类有一个缺点,它并不适合用于那些需要长期在后台执行的定时任务。一般情况下,为了能让手机电池更加耐用,每种手机都有自己的休眠策略,Android 手机会在长时间不操作的情况下自动进入休眠状态,这就有可能导致 Timer 中的定时任务无法正确运行。而 Alarm 则具有唤醒 CPU 的功能 ,它可以保证在大多数情况下需要执行定时任务的时候CPU都能正常工作。(唤醒CPU和唤醒屏幕并不是一个概念)
Java Timer 类
Timer 是一个工具类,通过调度 TimerTasks 安排在后台执行的任务(单次任务/周期任务);TimerTask 是一个抽象类,继承它并实现其 run 方法来写具体的任务逻辑代码。
根据是否循环执行分为两类:
1.只执行一次
public void schedule(TimerTask task, long delay) //从现在起过 delay 毫秒后开始执行任务