7

我只想在周一到周五报警。我的代码在这里

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

                    }

有一个想法。

4

3 回答 3

20

请尝试此代码。在我的应用程序中成功运行

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);
    }
于 2012-09-20T11:14:51.927 回答
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
  }
于 2012-09-20T08:03:28.247 回答
2

一种方法是在广播中收到警报通知时,然后检查第二天是否是星期六,然后将警报设置为星期一,否则只需添加 1 天即可。

为此,您每次都需要设置新的闹钟。

于 2012-09-20T07:43:11.793 回答