Вопрос по android-alarms, android, alarmmanager – как повторить будильник день недели на андроид

5

Я хочу получить тревогу только с понедельника по пятницу. мой код здесь

if (chk_weekday.isChecked()) {

                    int day = calNow.get(Calendar.DAY_OF_WEEK);
                    if (day == 2 || day == 3 || day == 4 || day == 5
                            || day == 6) {

                        alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
                                calSet.getTimeInMillis(), 1 * 60 * 60 * 1000,
                                pendingIntent);

                    }

Есть идея.

Другой подход: создайте 5 будильников (по одному на каждый день) и установите время повторения на НЕДЕЛЮ. Pankaj Kumar

Ваш Ответ

3   ответа
4

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

объявить тревогу в методе OnCreate ()

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calSet.getTimeInMillis(), 1 * 60 * 60 * 1000,  pendingIntent);

Теперь ваш будильник повторяется ежедневно, и вы должны выполнять действия ежедневно, кроме субботы и воскресенья.

  if (chkMonday.isChecked()) 
  {
      activityToPerform();
  }

  if (chkTuesday.isChecked()) 
  {
      activityToPerform();
  }

  if (chkWednesday.isChecked()) 
  {
      activityToPerform();
  }

  if (chkThrusday.isChecked()) 
  {
      activityToPerform();
  }

  if (chkFriday.isChecked()) 
  {
      activityToPerform();
  }

  if (chkSaturday.isChecked()) 
  {
      activityToPerform();
  }

  if (chkSunday.isChecked()) 
  {
      activityToPerform();
  }

  private void activityToPerform()
  {
    // your action code
  }
большое спасибо .. но еще одна вещь. У меня есть 7 флажков дня недели, предположим, я установил 3 флажка, как понедельник, вторник, пятница, поэтому будьте бдительны только 3 дня. можешь предложить мне пожалуйста ckpatel
предложить тебе что? Задайте свой вопрос кратко, пожалуйста.
Можете ли вы привести один пример, пожалуйста ckpatel
@ user1662296, я уже написал для тебя код, просто изучи его и сам внедришь.
Предположим, у меня есть 7 флажок, как с понедельника по воскресенье. Я проверю только 3 флажка, как понедельник, пятница, воскресенье, затем получаю сигнал тревоги, играют только те 3 дня, которые уже проверены. Будильник играет только понедельник, пятница, воскресенье. Приведите любой пример ckpatel
2

Одним из способов является то, что когда оповещение о тревоге принимается в широковещательной рассылке, затем проверьте на следующий день, если его суббота, а затем установите будильник на понедельник, в противном случае просто создайте с добавлением 1 дня.

Вы должны установить новый сигнал тревоги каждый раз для этого.

Можете ли вы привести один пример, пожалуйста. спасибо ckpatel
18

пожалуйста, попробуйте этот код. успешно запущен в моих приложениях

if (chk_monday.isChecked()) {
                        forday(2);
                    } else if (chk_tuesday.isChecked()) {
                        forday(3);
                    } else if (chk_wednesday.isChecked()) {
                        forday(4);
                    } else if (chk_thursday.isChecked()) {
                        forday(5);
                    } else if (chk_friday.isChecked()) {
                        forday(6);
                    } else if (chk_sat.isChecked()) {
                        forday(7);
                    } else if (chk_sunday.isChecked()) {
                        forday(1);
                    }

public void forday(int week) {

        calSet.set(Calendar.DAY_OF_WEEK, week);
        calSet.set(Calendar.HOUR_OF_DAY, hour);
        calSet.set(Calendar.MINUTE, minuts);
        calSet.set(Calendar.SECOND, 0);
        calSet.set(Calendar.MILLISECOND, 0);

        alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
                calSet.getTimeInMillis(), 1 * 60 * 60 * 1000, pendingIntent);
    }
Вы повторяете это каждый час. Для каждой недели формула будет 24 * 7 * 60 * 60 * 1000
не полностью, но демо для @ user1662296 некоторые изменения зависят от пользователя. ckpatel
спасибо .. мой успех тревоги .. спасибо еще раз ckpatel
он не будет работать, если пользователь хочет установить будильник более чем на один день.
удалите & quot; if {} else if {} .. & quot; просто используйте & quot; if {} if {} ... & quot; тогда стоит установить будильник на несколько дней .... :)

Похожие вопросы