2012-09-20 65 views
4

我想在星期一到星期五鬧鐘。 我的代碼在這裏如何在android中重複鬧鐘一週的日期

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個警報(每天一個警報)並將重複時間設置爲WEEK。 –

回答

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