Как автоматически c включить / отключить pu sh уведомление на определенное время - PullRequest
0 голосов
/ 02 апреля 2020

Я новичок в использовании службы сигнализации для Android. Я хочу создать напоминание о лекарстве, которое будет содержать информацию о лекарстве и количество повторных уведомлений в день в качестве входных данных. Однако я хочу включить уведомление только с 7:00 до 19:00. Таким образом, приложения будут уведомлять только в течение этого времени, а также приложения начнут уведомлять в 7 часов утра.

Пример: если пользователь хочет повторять уведомление от приложений 3 раза в день, то каждые 4 часа приложения уведомят их о приеме лекарства (12 часов / 3 раза = 4 часа).

Я пытался использовать while l oop, однако он как-то не сработал, как я ожидал, где, если условие выполнено, тогда он будет уведомлять, даже если еще не время (это случилось в мой код).

Итак, вот что я пытался сделать:

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);
}

Извините, если мой код во многих отношениях отсутствует. Но я очень надеюсь, что вы, ребята, сможете мне помочь или поделиться со мной любым другим возможным решением. Спасибо.

1 Ответ

0 голосов
/ 03 апреля 2020

Вы неправильно устанавливаете календарный час.

Замените

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
        }
...