2012-07-02 94 views
0

的Android 2.1如何在動態日期和時間設置鬧鐘?

代碼:

Calendar cal = Calendar.getInstance(); 
cal.set(Calendar.YEAR, year); 
cal.set(Calendar.MONTH, month); 
cal.set(Calendar.DAY_OF_MONTH, day); 
cal.set(Calendar.HOUR, hour); 
cal.set(Calendar.MINUTE, minute); 
cal.set(Calendar.SECOND, 0); 
cal.set(Calendar.MILLISECOND, 0); 

Intent intent = new Intent(this, AlarmReceiver.class); 
intent.putExtra("message", header); 
PendingIntent pendingIntent = PendingIntent.getBroadcast(this.getApplicationContext(), 234324243, intent, 0); 
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent); 

當我設置日期時間,只是加上它完美幾秒鐘。

但是,當我確定一個日期&時間(我從不同的活動得到的數據作爲答案),它不起作用,我tripple檢查我得到的數據是正確的。

關於我在做什麼的任何建議是錯誤的?

+0

返回來自不同活動的數據的代碼塊在哪裏?你是否告訴這個活動數據已經改變? – Otra

+0

我應該提到這整個代碼塊是發生在「onActivityResult」功能,感謝 – Pisti

+0

月日曆是'0到11',如果您收到月值爲一月= 1,十二月= 12,然後將其更改爲'月-1「,同時將其設置在日曆對象中。 – MKJParekh

回答

3

我想這可能是因爲你說在你的代碼的唯一問題,

當我沒有設定一個日期&時間,只是增加它的作品 完全幾秒鐘。

你在變像month,date,year得到不同的值,並將其設置爲Calendar對象。

FYI:的日曆對象需要幾個月的時間爲一月= 0,十二月份= 11,

,我懷疑你是讓他們爲一月= 1,十二月= 12,那麼,你是unknownly 設置下個月的日期在鬧鐘中觸發。

檢查月份的價值,並應用cal.set(Calendar.MONTH, month-1);然後它將工作。


如果你寫的循環,報警代碼,然後就照顧到每個時間通過唯一的ID在PendingIntent,而不是一個靜態值。

+0

謝謝,我所要做的就是cal.set(Calendar.MONTH,month -1);就像你說的,它的工作,非常感謝你! ;-D – Pisti

+0

不要緊,我也犯過同樣的錯誤,那是因爲我們很着急,或者忽略閱讀java:P – MKJParekh

相關問題