2011-11-26 59 views
5

我有這段代碼,它通過在另一個活動中使用TimePicker和DatePicker設置時間和日期來觸發鬧鐘一次。 我想修改它,只要我設定時間和日期,它就會每天同時觸發警報。換句話說,我希望鬧鐘每天被解僱。在android中開發每日鬧鐘

public class M_ReminderManager { 

    private Context mContext; 
    private AlarmManager mAlarmManager; 

    public M_ReminderManager(Context context) { 
     mContext = context; 
     mAlarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE); 
    } 

    public void setReminder(Long reminderId, Calendar when) { 

     Intent i = new Intent(mContext, Medicines_OnAlarmReceiver.class); 
     i.putExtra(RemindersDbAdapter.KEY_ROWID_MEDS, (long)reminderId); 

     PendingIntent pi = PendingIntent.getBroadcast(mContext, 0, i, PendingIntent.FLAG_ONE_SHOT); 
     mAlarmManager.set(AlarmManager.RTC_WAKEUP, when.getTimeInMillis(), pi); 
     } 
} 

我一直在使用setRepeating功能試過,但我不知道我應該如何正確地設定屬性 我用這條線,而不是在代碼中設置的功能,但它沒有工作:

mAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP, when.getTimeInMillis() ,AlarmManager.INTERVAL_DAY , pi); 

有人可以幫我嗎?

回答

4

只需修改代碼

alarmManager.set(AlarmManager.RTC_WAKEUP, 
    calendar.getTimeInMillis(), pendingIntent) 

AndroidAlarmService

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, 
    calendar.getTimeInMillis(), 5*1000, pendingIntent) 

並讀取此鏈接:http://android-er.blogspot.com/2010/10/schedule-repeating-alarm.html

+1

您需要用AlarmManager.INTERVAL_DAY替換5 * 1000來設置它每天 –

+0

AlarmManager類型中的方法set(int,long,PendingIntent)不適用於參數(int,long,long,PendingIntent) – Prasad