如何在一定时间内自动启用/禁用推送通知



我是安卓系统警报服务的新手。我想创建一个药物提醒,它是药物信息和每天重复通知的次数作为输入数据。然而,我只想在早上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
}

相关内容

  • 没有找到相关文章

最新更新