2012-12-22 98 views
3

我想在特定日期和时间显示对话框(2012年12月25日12:00),并且正在使用此代码。我设置为11个月(因为0是gen),但报警不启动。我的错误是什么?特定日期和时间的AlarmManager

Calendar cal=Calendar.getInstance(); 
    cal.set(Calendar.MONTH,11); 
    cal.set(Calendar.YEAR,2012); 
    cal.set(Calendar.DAY_OF_MONTH,25); 
    cal.set(Calendar.HOUR_OF_DAY,12); 
    cal.set(Calendar.MINUTE,00); 
    cal.set(Calendar.SECOND,0); 

Intent _myIntent = new Intent(context, Notify.class); 
    PendingIntent _myPendingIntent = PendingIntent.getBroadcast(context, 123, _myIntent, PendingIntent.FLAG_UPDATE_CURRENT| Intent.FILL_IN_DATA); 

AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 
alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), _myPendingIntent); 

回答

7

看看下面的代码约我我如何去设置为12月当月报警:

// for Alarm 25/12/2012 at 12.00 
Calendar myAlarmDate = Calendar.getInstance(); 
myAlarmDate.setTimeInMillis(System.currentTimeMillis()); 
myAlarmDate.set(2012, 11, 25, 12, 00, 0); 
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 

Intent _myIntent = new Intent(context, AlarmReceiverNotificationForEveryMonth.class); 
_myIntent.putExtra("MyMessage","HERE I AM PASSING THEPERTICULAR MESSAGE WHICH SHOULD BE SHOW ON RECEIVER OF ALARM"); 
PendingIntent _myPendingIntent = PendingIntent.getBroadcast(context, 123, _myIntent, PendingIntent.FLAG_UPDATE_CURRENT); 
alarmManager.set(AlarmManager.RTC_WAKEUP, myAlarmDate.getTimeInMillis(),_myPendingIntent); 

就可以更新你的意图和类上面的代码,你会得到你的愿望输出。

希望这对你有所帮助。

+0

谢谢。我的代码在哪里出错? –

+0

你必须使用精确的日期,月份和时间来设置TimeInMillis(System.currentTimeMillis()) –

+0

@PolHallen:这个代码适合你吗? –