Android:除周末外,每天设置闹钟
Posted
技术标签:
【中文标题】Android:除周末外,每天设置闹钟【英文标题】:Android: set alarm to fire everyday except the weekends 【发布时间】:2013-11-19 00:38:10 【问题描述】:我已经阅读了很多文章,但是我没有找到/或只是错过了关于我的具体问题的答案,这很奇怪,因为我认为我正在尝试实施一个常见案例。 好吧,我想要的是将警报设置为除周末之外的每一天,所以从周一到周五的某个特定时间。
目前我下一步:
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, hour);
calendar.set(Calendar.MINUTE, minute);
Intent intent = creating an Intent here
PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, 0);
am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
据我了解,由于 AlarmManager.INTERVAL_DAY,下一个代码将在我指定的时间触发警报并每天执行此操作。
我想过做下一步来完成我的任务:
for(int i = 1; i < 6; i++)
calendar.add(Calendar.DAY_OF_WEEK, i);
但我不确定这个逻辑的正确性。 请你 1.纠正我,如果我错过了什么 2. 提出一些适当的解决方案或只是你的想法来完成我的任务
更新:
好吧,我想到了下一步: 如果我
calendar.set(Calendar.DAY_OF_WEEK, 1);
然后
am.setRepeating(AlarmManager.RTC_WAKEUP, date.getTimeInMillis(), AlarmManager.INTERVAL_DAY * 5, pendingIntent);
因此,我将初始日期设置为星期一并重复 5 次,所以星期一到星期五,无论当前日期是什么,当用户设置闹钟时,它是正确的还是我错过了什么? 顺便说一句,我如何更新 setRepeating 以将其设置为每周重复一次,而不仅仅是一个?
更新1:
我想我理解了我的错误,通过使用上面的代码,我会做一些奇怪的事情,所以初始化日是星期一,但是重复间隔是 5 天一次,而不是从星期一到星期五每天。
【问题讨论】:
calendar
添加时间后可以查看是SATURDAY
还是SUNDAY
,然后决定不设置闹钟。但是,您不能使用setRepeating()
,因为它无法查看日期。
嗨,谢谢。好吧,我不明白如何将开始日设置为星期一并每天重复闹钟,除了周末,无论当天是哪一天,当用户设置闹钟时
对不起,我刚刚看到你的编辑(Update1),它似乎比我的想法简单得多。我正在考虑使用.set()
和Calendar
手动设置为工作日,但这很麻烦。顺便说一句,我建议您将您的发现作为这篇文章的答案发布。提问者可以在这里回答他/她自己的问题(并且推荐!):)
谢谢:) 将“更新”移至答案部分
你的 for 循环是错误的 for(int i = 1; i
【参考方案1】:
看来唯一的办法就是设置
am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
在我在 Intent 构造函数中指定的火灾处理程序中,检查当前日期并避免通知是否是星期六或星期日。
...
if(intent.getBooleanExtra(INTENT_NOTIFY, false) && !isWeekend())
showNotification();
...
private boolean isWeekend()
Calendar calendar = Calendar.getInstance();
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
return (dayOfWeek == Calendar.SATURDAY || dayOfWeek == Calendar.SUNDAY);
顺便说一句,请告诉我,我已将警报设置为重复模式,第一次触发,然后我打开模拟器设置并手动将日期移动到明天和时间,但没有触发警报通知,是吗smth with emulator 还是我的代码有一些错误?
【讨论】:
以上是关于Android:除周末外,每天设置闹钟的主要内容,如果未能解决你的问题,请参考以下文章