1. 获取 AlarmManager 实例:
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
2. 创建 PendingIntent:
Intent intent = new Intent(this, MyAlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
这里的 MyAlarmReceiver 是你自定义的广播接收器,负责处理 AlarmManager 触发的事件。
3. 设置定时器(单次触发):
long triggerAtMillis = System.currentTimeMillis() + 10000; // 10 秒后触发
alarmManager.set(AlarmManager.RTC_WAKEUP, triggerAtMillis, pendingIntent);
上述代码将在当前时间的基础上加上 10 秒,然后触发 MyAlarmReceiver。
4. 设置定时器(重复触发):
long intervalMillis = 60000; // 1 分钟间隔
long triggerAtMillis = System.currentTimeMillis() + 10000; // 10 秒后触发
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, triggerAtMillis, intervalMillis, pendingIntent);
上述代码将在当前时间的基础上加上 10 秒触发第一次,然后每隔 1 分钟触发一次 MyAlarmReceiver。
5. 取消定时器:
alarmManager.cancel(pendingIntent);
如果你想取消一个已设置的定时器,可以使用 cancel 方法,并传入之前创建的 PendingIntent。
请注意,使用 AlarmManager 需要考虑电池寿命和性能,尽量避免滥用定时器。此外,确保在 AndroidManifest.xml 文件中注册你的广播接收器:
<receiver android:name=".MyAlarmReceiver" />
在接收器中处理定时触发的逻辑。另外,记得在使用 AlarmManager 时,在 AndroidManifest.xml 文件中添加必要的权限:
<uses-permission android:name="android.permission.WAKE_LOCK" />
这是为了确保在设备休眠状态下,AlarmManager 能够唤醒设备执行任务。
转载请注明出处:http://www.zyzy.cn/article/detail/15246/Android