7

I want to get alarm on monday to friday only. my code is here

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

                    }

Have a Idea.

ckpatel
  • 1,926
  • 4
  • 18
  • 34

3 Answers3

20

please try this code. is successfully run in my apps

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);
    }
ckpatel
  • 1,926
  • 4
  • 18
  • 34
4

From your question i believe you want to perform certain activity on daily basis except Saturday, Sunday. So your code is right but you declare it wrong way, make changes as follows and try

declare alarm in OnCreate() method

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

Now your alarm is set to repeat daily, and you need to perform action daily except Sat,Sunday

  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
  }
Lucifer
  • 29,392
  • 25
  • 90
  • 143
  • can you give one example please – ckpatel Sep 20 '12 at 08:46
  • @user1662296, i have already coded for you, just study it and implement it your self. – Lucifer Sep 20 '12 at 08:49
  • thank you very much..but one more thing. i have 7 checkbox of week day,suppose i check 3 checkbox like monday,tuesday,friday so get alert only 3 days. can you suggest me please – ckpatel Sep 20 '12 at 09:09
  • suggest you what ? ask your question briefly please. – Lucifer Sep 20 '12 at 09:11
  • suppose i have 7 check box like monday to sunday. i will check only 3 check box like monday , friday , sunday then get alarm play only those 3 day which is already check .alarm only play monday,friday, sunday .give any example – ckpatel Sep 20 '12 at 09:16
  • @ckpatel how u implemented your scenerio can u pls share i also stuck here suppose i have 7 check box like monday to sunday. i will check only 3 check box like monday , friday , sunday then get alarm play only those 3 day which is already check .alarm only play monday,friday, sunday .give any example – Erum Jan 31 '15 at 10:25
  • You are repeating it every hour. For every week formula would be 24 * 7 * 60 * 60 * 1000 – Mitesh Shah Apr 12 '16 at 06:15
2

One way is when the alarm notify is receive in broadcast then check the next day if its saturday then set the alarm for monday otherwise just create with adding 1 day.

You need to set new alarm every time for this.

Pratik
  • 30,639
  • 18
  • 84
  • 159