2012-09-20 2 views
4

나는 월요일에만 알람을 울리고 싶다. 내 코드는 여기에안드로이드에서 알람 주간을 반복하는 방법

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

        } 

아이디어가 있습니다.

+1

다른 접근법 : 매일 5 회씩 알람을 생성하고 반복되는 시간을 매주로 설정하십시오. –

답변

15

이 코드를 시도하십시오. 내 앱에서 성공적으로 실행됩니다.

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

감사합니다. 내 경보 성공. 두 번째 다시 – ckpatel

+1

알람이 하루 이상 설정하려는 경우 작동하지 않습니다. – Lucifer

+0

그것의 완전하지 않지만 @ user1662296에 대한 데모 일부 변화는 사용자에 달려있다. – ckpatel

2

한 가지 방법은 알람 알림이 브로드 캐스트에서 수신되면 다음 날을 확인하여 토요일에 월요일에 알람을 설정하고 그렇지 않으면 1 일 추가로 생성하는 것입니다.

이 때마다 새 알람을 설정해야합니다.

+0

당신은 하나의 예제 please.thanks – ckpatel

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 
    } 
+0

을 주실 수 있습니까? 하나의 예를 들면 – ckpatel

+0

@ user1662296을 주시겠습니까? 나는 이미 당신을 위해 코드를 작성했습니다. 그냥 공부하고 스스로 구현하십시오. – Lucifer

+0

대단히 감사합니다. 그러나 한가지 더. 나는 주중에 7 개의 체크 박스를 가지고 있는데, 월요일, 화요일, 금요일과 같은 3 개의 체크 박스를 체크하면 3 일만에 경고를 받는다. 너 나 한테 제안 해 줄 수 있니? – ckpatel

관련 문제