Android,设置AlarmManager的自定义时间......请指教

时间:2013-02-06 15:34:43

标签: android alarmmanager

您好我需要设置AlarmManager来提醒我服用药物。我需要按照自定义的天数和当天的自定义时间重复它。

有没有一种有效的方法来设置AlarmManager或CommonsWare的AlarmManager实现,以提醒我“在接下来的5天从早上9点开始每天两次”提醒我服用药物?请提前获取建议和tnx,以获得示例代码和相关教程中的任何建设性帮助。

3 个答案:

答案 0 :(得分:0)

我没有看过Mark的AlarmManager实现,但一般来说,没有办法让裸AlarmManager完成你想做的事情。您可以在特定时间安排单个警报,也可以按固定间隔重复警报。如果你想要处理像你描述的那样复杂的日程安排的东西,你将不得不编写或找到执行它的代码。

答案 1 :(得分:0)

您想在AlarmManager中使用PendingIntent。我们的想法是使用alarmManager安排pendingIntent,触发intentService或广播,使用alarmManager为下一个所需事件设置另一个pendingIntent。您需要记住,如果用户重新启动设备,您将需要BOOT_RECEIVED权限。我在音频控制中有复杂的调度,这正是我所做的。

这是一个相当不错的教程,我的意思是:

http://android-er.blogspot.com/2010/10/simple-example-of-alarm-service-using.html

答案 2 :(得分:0)

您需要在下次想要服用药物时安排闹钟 - 根据您的算法(例如,如果每天两次,并且您今天第一次进行待定意图回调,则安排下一次报警[6,7,8,9,10 ...]小时后开始。

您需要同时保存警报启动的上次和共享prefs / file / DB中的用户设置。

你需要处理进程(android杀死它或设备重启)。在设备重启的情况下,您应该使用启动接收器来启动您的服务but you need to remember that from android 3.1 the user has to use at least one time the GUI in order for you to intercept the boot completed receiver。启动完成的接收器应该查看警报最后一次启动的时间,并根据用户设置设置下一次警报启动。

在android杀死你的服务的情况下,你需要做研究,我在这里无法帮助。

see example