如何在android中按计划运行任务?

时间:2015-01-24 12:42:29

标签: android android-service

我想按计划执行某项任务(例如显示通知),例如:每天10:00和每个星期一11:00等等,我不能使用AlarmManager,因为任务之间的时间间隔不同我不能每N秒运行一次任务。我可以为AlarmManager指定一些任务吗?我该怎么做以及我应该使用什么?

1 个答案:

答案 0 :(得分:1)

  

我无法使用AlarmManager,因为任务之间的时间间隔不同

是的,你可以。

一种选择是针对不同的任务使用不同的警报。在您的示例中,您将为“每天10:00”发出一个警报,并为“每周一11:00”发出单独的警报。

另一种选择是对接下来的任何事情使用单个警报,然后它会执行您的业务逻辑(例如,提醒用户事件),然后为下一个事件安排下一个警报。例如,使用我的时区,现在是星期六的07:45。您的应用会有AlarmManager警报,以便在10:00(“每天10:00”)获得控制权。当调用该警报时,它将在周日10:00(“每天10:00”)安排AlarmManager警报。星期日上午10点,它将在星期一10:00(“每天10:00”)安排闹钟。星期一上午10点,它将在星期一11:00(“每个星期一11:00”)安排闹钟。星期一11:00,它会在星期二10:00安排闹钟。等等。

如果只有几条规则,我会选择第一个选项。如果可能存在N个规则,我会选择第二个选项,以免淹没AlarmManager

  

我可以为AlarmManager指定一些任务吗?

是。确保PendingIntent对象是不同的。最简单的方法是将requestCode参数的唯一值用于PendingIntent工厂方法,例如getBroadcast()