0

您好,我需要设置 AlarmManager 来提醒我服药。我需要按自定义天数和自定义天数重复它。

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

4

3 回答 3

0

I haven't looked into Mark's AlarmManager implementation, but there is no way, in general, to get the bare AlarmManager to do what you are trying to do. You can schedule a single alarm, at a specific time, or a repeating alarm, that repeats at fixed intervals. If you want something that handles complex schedules like the one you describe, you'll have to write or find code that does it.

于 2013-02-06T15:41:50.230 回答
0

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

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

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

于 2013-02-06T17:29:14.660 回答
0

您需要在下次要服药时安排闹钟 - 根据您的算法(例如,如果它每天两次,并且您今天第一次到达待处理的意图回调,那么将下一个闹钟安排到在 [6,7,8,9,10...] 小时后开始)。

您需要将警报启动的上次时间和用户设置保存在共享首选项/文件/数据库中。

您需要停止处理进程(android 将其杀死或设备已重新启动)。在设备重启的情况下,您应该使用启动接收器来启动您的服务,但您需要记住,从 android 3.1 开始,用户必须至少使用一次 GUI 才能拦截启动完成的接收器。启动完成的接收器应该查看上次启动警报的时间,并根据用户设置设置下次启动警报。

在 android 杀死你的服务的情况下,你需要进行研究,我在这里无能为力。

看例子

于 2013-02-07T16:10:45.653 回答