在Android系统中,我们可以使用AlarmManager类实现周期性的后台任务。使用AlarmManager不仅可以让应用在用户不使用时继续执行任务,还可以确保在设备处于睡眠状态下也能够正常工作。
下面是一个示例代码,介绍如何使用AlarmManager实现每隔固定时间执行一次任务:
Intent intent = new Intent(this, MyReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
// 让任务在10秒后开始执行,并且每隔60秒重复执行一次
// 注意:这里的时间是以毫秒为单位的
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
System.currentTimeMillis() + 10000,
60 * 1000,
pendingIntent);
上面的代码创建了一个Intent,并使用PendingIntent包装后传递给AlarmManager。然后调用setRepeating()方法设置定时任务的执行方式。在这个示例中,任务会在10秒后开始执行,并且每隔60秒重复执行一次。最后,我们可以在MyReceiver类中实现我们的后台任务逻辑。
需要注意的是,在Android 6.0及以上版本中,需要动态请求“后台任务”权限才能使用AlarmManager的setExact()和setWindow()方法。而setRepeating()方法则不受影响。
下一篇:AlarmManager提前触发