最近有需要在android使用很复杂的定时任务,android中timer满足不了需求,之前用过Java的Quartz任务调度框架,感受了其强大的机制 ,其中使用Cron表达式可以轻松的完成复杂的任务调度,开始尝试将其在Android中集成,但其依赖jre下的java.beans这个包,集成起来有点复杂,不过Quartz跟java都开源,可以尝试拿开源框架来集成。在网上找了一个更轻量级的并支持Cron表达式的开源框架Cron4j, Cron4j是一个轻量级的java任务调度工具,可以采用Unix Crontab语法(类似Cron表达式)来设置任务调度时间,大小也只有36KB。

http://www.sauronsoftware.it/projects/cron4j/download.phpw.sauronsoftware.it/projects/cron4j/download.php


This project's SourceForge.net Subversion repository can be checked out through SVN with the following instruction set:


svn co https://cron4j.svn.sourceforge.net/svnroot/cron4j cron4j


 

Sonme examples:
 5 * * * *:表示在每时的第5分钟的时候执行一次(如00:05, 01:05, 02:05 etc.)。
 * * * * *:表示每分钟执行一次。
 * 12 * * Mon:表示每星期一12时的每一分钟执行。
minute hour dayOfMonth month dayOfWeek
(0, 59) (0, 23) (1, 31) (1, 12) (0, 7)



使用示例:

import it.sauronsoftware.cron4j.
 Scheduler;public class TestScheduler
 { public static void main(String[] args)
 throws Throwable
 {  Scheduler scheduler = new Scheduler();  
 scheduler.schedule("* * * * *",
 new HelloWorldTask()); 
  scheduler.start();  
 Thread.sleep(300000);
 // pause the main thread for 5 minutes  scheduler.stop(); }}