AlarmManager 是 Android 中用于调度在未来的某个时间执行的任务的类。它允许你在设备处于休眠状态时唤醒设备,执行预定的任务。以下是一些 AlarmManager 的基础用法:

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