2013-06-04 70 views
2

顯示通知我要在某一特定日期顯示的通知,我使用日曆對象:Android的 - 在特定日期

Calendar calendar = Calendar.getInstance(); 
    calendar.set(Year, Month, Day, Hours, Minutes, Seconds); 
    long when = calendar.getTimeInMillis(); 

而且我用的是AlarmManager:

 AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE); 
    Intent i = new Intent(this, NotificationsService.class); 
    PendingIntent pi = PendingIntent.getService(this, 0, i, 0); 
    am.cancel(pi); 
    am.set(AlarmManager.RTC_WAKEUP, when, pi); 

但是,這並不表明正確毫秒,如果我使用:

am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 10000, pi); 

顯示正確的通知,但如果我用一個標誌不顯示正確的毫秒通知。爲什麼?請有人幫助我。感謝

編輯:(解決問題)

的問題是,當月日曆是在實際先前(一月= 0,日= 1,...)

+0

使用報警管理器在特定日期和時間觸發代碼 –

回答

0

我建議在這裏尋找一個如何在特定日期/時間運行服務的例子:How to run a service every day at noon, and on every boot

你必須記住的一個重要的事情是,所有的值都在電話重啓時被遺忘。 Link也爲此提供瞭解決方案。

+0

謝謝,我不知道alarmmanager失敗。但是這個鏈接對我沒有幫助,因爲我可以在特定日期(年,月,日,時,分,秒)顯示通知,並且此鏈接每天都有代碼。我不想使用「AlarmManager.setRepeating ...」我想要「AlarmManager.set ...」,謝謝 – nss

+0

謝謝,我解決了這個問題。問題在於,日曆中的月份實際上是先前的(1月= 0,2月= 1,...) – nss