我刚开始使用Android的警报服务。我想创建一个用药提醒,它是用药信息和每天重复通知的次数作为输入数据。但是,我只想在上午7点到晚上7点之间启用通知。因此,应用程序将仅在该时间内进行通知,并且应用程序也将在上午7点开始进行通知。
例如:如果用户希望每天从应用程序中重复3次通知,则每隔4个小时,应用程序将通知他们服药(12小时/ 3次= 4小时)。
我已经尝试过使用while循环,但是如果条件为真,它就不会按我预期的那样工作,即使现在还不是时候,它也会一直保持通知状态(这发生在我的代码中)。
所以,这是我尝试做的:
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 7);
while(calendar.get(Calendar.HOUR_OF_DAY) >= 0) {
while (calendar.get(Calendar.HOUR_OF_DAY) >= 7 && calendar.get(Calendar.HOUR_OF_DAY) <= 19) {
// the process here
}
calendar.add(Calendar.HOUR_OF_DAY, 1);
}
很抱歉,我的代码在很多方面都缺乏。但是,我真的希望你们能帮助我或与我分享任何其他可能的解决方案。谢谢。
您设置的日历小时不正确。
替换
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 7);
while(calendar.get(Calendar.HOUR_OF_DAY) >= 0) {
while (calendar.get(Calendar.HOUR_OF_DAY) >= 7 && calendar.get(Calendar.HOUR_OF_DAY) <= 19) {
// the process here
}
calendar.add(Calendar.HOUR_OF_DAY, 1);
}
有
Calendar cc = Calendar.getInstance();
int mHour = cc.get(Calendar.HOUR_OF_DAY);
if (mHour >= 7 && mHour <= 19) {
// the process here
}