代码与范例:
1 2 3 4 5 6 7 |
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 文件中注册,如下所示。
1 |
<receiver android:name=".TechoPlusAlarmReceiver" /> |
此外,如果要为 AlarmManager 设置间隔,需要注意的是,参数(单位为毫秒)大小有一定的限制,且 AlarmManager 无法在系统关机后保留。