2014-09-18 118 views
1

從我使用alarmmanager的試驗中,我發現它不能處理setrepeating中內部的大日值。那麼每30/60/90天發送一次通知最好的方法是什麼?有沒有辦法與alarmmanager做到這一點,還是我需要使用不同的方法?Android每30天發送一次通知?

回答

0

使用alarm manager,並把您的通知中NotifyService

Intent myIntent = new Intent(Current.this , NotifyService.class);  
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE); 
pendingIntent = PendingIntent.getService(ThisApp.this, 0, myIntent, 0); 
Calendar calendar = Calendar.getInstance(); 
calendar.set(Calendar.HOUR_OF_DAY, 12); 
calendar.set(Calendar.MINUTE, 00); 
calendar.set(Calendar.SECOND, 00); 
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 24*60*60*1000 , pendingIntent); //set repeating every 24 hours 

See this for more information

0

所有你需要的是一個特定的重複間隔根據自己的需要,像

60 days = 60*24*60*60*1000 (time in millis) 

另外,一個重要的要記住的事情。正如你試圖設置鬧鐘這麼長的重複時間間隔,使用android它的自然設備將會關閉或重新啓動。在這種情況下,Alarmanager會清除設備重新啓動前設置的所有警報,因此您需要檢測設備何時重新引導並再次設置所有必需的警報。

RobinF已經發布了設置鬧鐘的代碼,您可以參考。

0

試用待定報警管理器的意圖和傳遞時間爲1 * 24 * 60 * 60 * 1000(時間爲1天)