Установите уведомление в Android в определенные дни недели (дни могут быть непрерывными или прерывистыми) - PullRequest
0 голосов
/ 17 сентября 2018

Я создаю приложение, которое принимает данные от пользователя в виде дней, а затем устанавливаю уведомление для этих дней недели.Предположим, в среду и пятницу каждую неделю в 14:00.Я использовал код.

    Calendar setcalendar = Calendar.getInstance();
    setcalendar.set(Calendar.HOUR, hour);
    setcalendar.set(Calendar.MINUTE, min);
    setcalendar.set(Calendar.SECOND, 0);
        if (day=="1") {
            setcalendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
        }
        else if (day=="2")
        {
            setcalendar.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY);
        }
        else if(day=="3")
        {
            setcalendar.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);
        }
        else if(day=="4")
        {
            setcalendar.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY);
        }
        else if(day=="5")
        {
            setcalendar.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
        }
        else if(day=="6")
        {
            setcalendar.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
        }
        else
        {
            setcalendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
        }

         AlarmManager am = (AlarmManager) 
         context.getSystemService(ALARM_SERVICE); 

         am.setInexactRepeating(AlarmManager.RTC_WAKEUP,
                                setcalendar.getTimeInMillis(),
                                AlarmManager.INTERVAL_DAY*7, 
                                pendingIntent);

Я запускаю вышеуказанный код для каждого дня отдельно.Этот код работает для день = понедельник , а затем для день = среда .

. Он устанавливает время и день, а затем в setInexactRepeating он устанавливает каждый изуведомление должно появляться каждые 7 дней с использованием AlarmManager.INTERVAL_DAY*7.Когда я тестировал код, он генерирует уведомление и на сегодняшний день, даже если «Сегодня понедельник, а понедельник не выбран пользователем».

...