代码与范例:
Calendar cal = new GregorianCalendar();
cal.set(2014, 6, 19, 9, 23) // 2014年6月19日9点23分
Intent intent = new Intent(MainActivity.this, AlarmReceiver.class); // AlarmReceiver 需要继承 BroadcastReceiver,于是它将在接受到广播后执行 onReceive() 方法
intent.putExtra("intentID", 0); // 亦可以向 Intent 中添加数据
PendingIntent pintent = PendingIntent.getBroadcast(MainActivity.this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarm.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pintent); // 将在先前指定时刻发出广播
说明:上述代码将创建并注册一个定时发出的广播,广播接收器 AlarmReceiver 将接收该广播。广播接收器需要事先在 Manifest 文件中注册,如下所示。
此外,如果要为 AlarmManager 设置间隔,需要注意的是,参数(单位为毫秒)大小有一定的限制,且 AlarmManager 无法在系统关机后保留。