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);
当我不设置日期时间时,只需添加几秒就可以完美地运行。
但是当我确定日期和时间时间(我将数据作为来自不同活动的答案),它不起作用,我发现我检查的数据是正确的。
对我做错的任何建议?
答案 0 :(得分:3)
我认为这可能是您所说的代码中唯一的问题,
当我没有设定日期&时间,只需添加几秒即可 完美。
您在month,date,year
等变量中获取不同的值,并将其设置为Calendar
对象。
仅供参考:日历对象需要数月,因为1月= 0和12月= 11,
我怀疑你是以 Jan = 1和Dec = 12 得到它们,所以你不知道设置警报中下个月的日期来触发。
检查月份的值,然后应用cal.set(Calendar.MONTH, month-1);
然后它将起作用。
如果您已经在循环中编写了警报代码,那么请务必每次在PendingIntent
而不是一个静态值时传递唯一ID。