2012-07-02 149 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

相关问题