2014-12-13 135 views
1

我創建報警應用與設置多天的鬧鐘即重複Alarm.My的Android鬧鐘應用查看這個樣子,enter image description hereAlarmManager設置報警每週重複在選定的日子

我已經做了規範這一點,

AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 
Intent alarmIntent = new Intent(ALARM_ACTION_NAME); 

alarmIntent.putExtra("AlarmID", m_alarmId); 

PendingIntent alarmPI = PendingIntent.getBroadcast(this, m_alarmId, alarmIntent, 0);  

//listofred is a ArrayList of int items.contains int valye for selected days...for My Example listofred:3,4,5,7 
for (int i = 0; i < listOfred.size(); i++) { 

       // for alarm ... 
       calNow = Calendar.getInstance(); 
       calSet = (Calendar) calNow.clone(); 

       int day = calSet.get(Calendar.DAY_OF_WEEK); //current day...for example.13 dec 2014 - sat so, day = 7  

       calSet.set(Calendar.DAY_OF_WEEK, listOfred.get(i)); 
       calSet.set(Calendar.HOUR_OF_DAY, time_picker.getCurrentHour()); 
       calSet.set(Calendar.MINUTE, time_picker.getCurrentMinute()); 
       calSet.set(Calendar.SECOND, 0); 
       calSet.set(Calendar.MILLISECOND, 0); 


       alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, 
         calSet.getTimeInMillis(), (DateUtils.DAY_IN_MILLIS)*7, 
         alarmPI); 

       //parameter long intervalMillis.....(DateUtils.DAY_IN_MILLIS)*7 so that it will repeat after each 7 days... 


      } 

我的問題是,當我運行這個代碼時,它會設置只有週六的重複鬧鐘(,即listofred Arraylist中的最後一個對象),每次它爲Arraylist中的最後一個對象設置警報。

+0

http://stackoverflow.com/questions/14272295/how-can-i-get-the-repeat-alarm-for-week-days-using-alarm-manager – user1333057 2014-12-13 08:40:44

+2

套裝該警報每天重複一次,並讓'BroadcastReceiver'檢查是否是'紅色'日期之一。如果是的話,做任何你想做的事 - 如果沒有,就什麼也不做。 – Squonk 2014-12-13 08:59:27

回答

1

我知道現在回答這個問題已經相當晚了,但這不是因爲傳遞給每個警報事件的意圖相同。 也許這可能有幫助。

PendingIntent alarmPI = PendingIntent.getBroadcast(this, m_alarmId, alarmIntent, PendingIntent.FLAG_ONE_SHOT); 

https://stackoverflow.com/a/3009690/1111127