2011-09-17 73 views
0

我試圖在每週的第5天和當天的第24小時設置鬧鐘。每5天執行一次警報,代碼是否正確?

這是我使用的代碼。我一直在閱讀日曆和AlarmManager文檔,

這是我想出的。

String alarm = Context.ALARM_SERVICE; 
    //Alert for game covers 
    am = (AlarmManager)context.getSystemService(alarm); 
    calendar = Calendar.getInstance(); 
    calendar.set(Calendar.DAY_OF_WEEK, 5); 
    calendar.set(Calendar.HOUR_OF_DAY, 23); 
    calendar.set(Calendar.MINUTE, 0); 
    calendar.set(Calendar.SECOND, 0); 
    Intent Aintent = new Intent("REFRESH_THIS"); 
    PendingIntent pi = PendingIntent.getBroadcast(context, 0, Aintent, 0); 
    am.setRepeating(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis() , AlarmManager.INTERVAL_DAY, pi); 

這是正確的,我想做什麼?

+0

你測試了你的代碼嗎? –

+0

那麼我如何測試它?有沒有什麼辦法來測試報警。或者我必須等到我指定的時間? –

+0

您可以嘗試使用不同值進行測試的功能。邏輯將是相同的,只是截斷你必須等待的時間。 –

回答

0

爲了得到Calendar例如,一個指向日起5日內在未來,你把當前的日期和加5幾天喜歡這樣:

Calendar cal = Calendar.getInstance(); 
cal.add(Calendar.DATE, 5); 

然後你讓你的鬧鐘:

am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 
       pendingIntent); 
+0

我使用setRepeating()這樣看起來如何? –

+0

也許你首先看看這個:http://developer.android.com/reference/android/app/AlarmManager.html –

+0

如果我只想在星期一和星期幾發出警報,那麼這個AlarmManager的參數是什麼。 INTERVAL_DAY –

相關問題