定时任务
注意:
1、timeZone支持标准时区列表,标准时区列表请参考wiki。
定时任务管理器
ACTimerTaskMgr mgr = ac.timerTaskMgr(ac.newContext());
addTask
//添加定时任务
ACTimerTask task = new ACTimerTask();
task.setName("test-timer-task");
task.setDescription("test-timer-task");
Calendar c = Calendar.getInstance();
c.setTimeZone(TimeZone.getDefault()); //设置时区
c.add(Calendar.DAY_OF_MONTH, 1);
task.setTimePoint(c);
task.setTimeCycle("month");
task.setUser(userId);
task.setDevice(deviceId);
String bytes = "aaaaa";
ACDeviceMsg msg = new ACDeviceMsg(71, bytes.getBytes());
task.setDeviceMessage(msg);
task = mgr.addTask(task);
deleteTask
//删除定时任务
mgr.deleteTask(task.getDevice(), task.getTaskId());
modifyTask
//修改定时任务
task.setName("new-test-timer-task");
mgr.modifyTask(task.getTaskId(), task);
startTask
//启动定时任务
mgr.startTask(task.getDevice(), task.getTaskId());
stopTask
//停止定时任务
mgr.stopTask(task.getDevice(), task.getTaskId());
listTasks
//列出定时任务
ArrayList<ACTimerTask> list = mgr.listTasks(deviceId);
时区问题说明
||SKIP||
java所支持的时区列表是标准时区列表的一个超集,所以使用java的接口设置时区时需要注意时区ID是否是标准时区ID
正面示例
Calendar c = Calendar.getInstance();
c.setTimeZone(TimeZone.getTimeZone("Etc/GMT-8")); //东八区,标准时区ID,支持
反面示例
Calendar c = Calendar.getInstance();
c.setTimeZone(TimeZone.getTimeZone("GMT+8")); //东八区,非标准时区ID,不支持