Java 如何安排活动?
我有一个函数希望在00:00am、08:00am和16:00pm执行。每8小时一次 我怎样才能做到这一点 我做了一些谷歌和搜索,但我找不到解决方案 我试过下面的代码,但不起作用。请帮忙。谢谢Java 如何安排活动?,java,android,Java,Android,我有一个函数希望在00:00am、08:00am和16:00pm执行。每8小时一次 我怎样才能做到这一点 我做了一些谷歌和搜索,但我找不到解决方案 我试过下面的代码,但不起作用。请帮忙。谢谢 try { date = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss", Locale.ENGLISH).parse("2013/02/13 16:00:00"); TimerTask updateProfile =
try {
date = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss", Locale.ENGLISH).parse("2013/02/13 16:00:00");
TimerTask updateProfile = new Controller(context);
timer.scheduleAtFixedRate(updateProfile, date, 28800); //28800second == 8 hour
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
尝试使用&RND over Service、AlarmManager、PendingEvent和Intent及其工作组合。您可以使用AlarmManager类为特定时间安排任务,AlamManager有很多示例,1个周期应以毫秒为单位,8小时=28800000 2.英语没有区别,请删除以避免混淆 3您的开始日期为过去,当您启动计时器时,它将运行所有跳过的计划。如果不需要,请检查TimerTask.scheduledExecutionTime是否不是过去的,例如
public void run() {
// truncate time to hours
long t1 = System.currentTimeMillis() / 3600000 * 3600000;
long t2 = scheduledExecutionTime() / 3600000 * 3600000;
if (t2 >= t1) {
...
}
使用WakeLock尝试AlarmManager,您认为它不工作是什么意思?程序将连续调用函数updateProfile。但是我想要的是每1小时调用8个函数。谢谢。这对我来说是一个新概念。我不知道它会重新运行所有跳过的计划。你能解释一下如何避免运行所有跳过的计划吗?我只希望函数在特定计时器后只运行一次。添加了一个如何跳过旧计划的示例