如何安排功能?

时间:2013-02-14 07:43:51

标签: java android

我有一个想要在00:00 am,08:00 am和16:00 pm执行的功能。 (每8小时一次)。

我怎样才能做到这一点?

我做了一些谷歌和搜索,但我找不到解决方案。

我曾尝试过以下代码,但它不起作用。请帮忙。感谢。

        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();
    }

3 个答案:

答案 0 :(得分:0)

尝试使用& RND高于Service, AlarmManager, PendingIntent & Intent及其工作组合。

答案 1 :(得分:0)

你可以使用AlarmManager类来安排特定时间的任务,有很多警报管理员的例子,android docs

答案 2 :(得分:0)

1)周期应以毫秒为单位,8小时= 28800000

2)Locale.ENGLISH没有区别,删除以避免混淆

3)您的开始日期是过去,当您启动计时器时,它将运行所有跳过的计划。如果你不想要它检查TimerTask.scheduledExecutionTime()是不是在过去,例如

        public void run() {
            // truncate time to hours
            long t1 = System.currentTimeMillis() / 3600000 * 3600000;
            long t2 = scheduledExecutionTime() / 3600000 * 3600000;
            if (t2 >= t1) {
                ...
            }