如何在 android 中按计划 运行 任务?
How to run task by schedule in android?
我想按计划执行一些任务(例如显示通知),例如:每天 10:00 和每个星期一 11:00 等等,我不能使用 AlarmManager,因为任务之间的时间间隔不同,我不能 运行 每 N 秒执行一次任务。我可以为 AlarmManager 指定一些任务吗?我该怎么做以及我应该使用什么?
I can't use AlarmManager, because the time interval between tasks is different
是的,你可以。
一种选择是对不同的任务使用不同的警报。在您的示例中,您将有一个“10:00 每天”的警报和一个 单独的 警报“11:00 每个星期一”。
另一种选择是对接下来发生的任何事情使用单个警报,然后它会执行您的业务逻辑(例如,提醒用户该事件),然后为接下来发生的事情安排下一个警报。例如,使用我的时区,现在是星期六 07:45。您的应用程序将有一个 AlarmManager
警报以在 10:00 获得控制权(“每天 10:00”)。当调用该警报时,它会为 10:00 星期日安排一个 AlarmManager
警报(“每天 10:00”)。 10:00 星期天,然后它会在 10:00 星期一安排闹钟(“每天 10:00”)。 10:00 星期一,然后它会为 11:00 星期一安排闹钟(“11:00 每个星期一”)。 11:00 星期一,它会在 10:00 星期二安排闹钟。等等。
如果只有几个规则,我会选择第一个选项。如果可能有 N 个可能的规则,我会选择第二个选项,以免淹没 AlarmManager
.
Can I specify a few tasks for AlarmManager?
是的。确保 PendingIntent
对象是不同的。最简单的方法是将 requestCode
参数的唯一值用于 PendingIntent
工厂方法,例如 getBroadcast()
.
我想按计划执行一些任务(例如显示通知),例如:每天 10:00 和每个星期一 11:00 等等,我不能使用 AlarmManager,因为任务之间的时间间隔不同,我不能 运行 每 N 秒执行一次任务。我可以为 AlarmManager 指定一些任务吗?我该怎么做以及我应该使用什么?
I can't use AlarmManager, because the time interval between tasks is different
是的,你可以。
一种选择是对不同的任务使用不同的警报。在您的示例中,您将有一个“10:00 每天”的警报和一个 单独的 警报“11:00 每个星期一”。
另一种选择是对接下来发生的任何事情使用单个警报,然后它会执行您的业务逻辑(例如,提醒用户该事件),然后为接下来发生的事情安排下一个警报。例如,使用我的时区,现在是星期六 07:45。您的应用程序将有一个 AlarmManager
警报以在 10:00 获得控制权(“每天 10:00”)。当调用该警报时,它会为 10:00 星期日安排一个 AlarmManager
警报(“每天 10:00”)。 10:00 星期天,然后它会在 10:00 星期一安排闹钟(“每天 10:00”)。 10:00 星期一,然后它会为 11:00 星期一安排闹钟(“11:00 每个星期一”)。 11:00 星期一,它会在 10:00 星期二安排闹钟。等等。
如果只有几个规则,我会选择第一个选项。如果可能有 N 个可能的规则,我会选择第二个选项,以免淹没 AlarmManager
.
Can I specify a few tasks for AlarmManager?
是的。确保 PendingIntent
对象是不同的。最简单的方法是将 requestCode
参数的唯一值用于 PendingIntent
工厂方法,例如 getBroadcast()
.