1、先注册一个广播
java
setDailyAlarm();
IntentFilter filter3 = new IntentFilter("UPDATERULE");
registerReceiver(updateRuleReceive, filter3);
java
private BroadcastReceiver updateRuleReceive = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
getOfflineRule();
}
};
2、使用AlarmManager,在onCreate执行方法
介绍:AlarmManager
是 Android 提供的一个系统服务,用于在指定的时间安排任务。它可以在应用处于后台或关闭时唤醒设备并执行指定的操作
java
//每天定时同步离线规则功能
private void setDailyAlarm() {
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent("UPDATERULE");
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 5);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
// 如果设置的时间已经过去,调整到第二天,重置更新状态
if (calendar.getTimeInMillis() < System.currentTimeMillis()) {
calendar.add(Calendar.DAY_OF_YEAR, 1);
}
alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis(),
AlarmManager.INTERVAL_DAY,
pendingIntent);
}
3、添加权限
XML
<uses-permission android:name="android.permission.WAKE_LOCK" />
用途:
- 保持 CPU 活动:当设备处于休眠状态时,应用可以使用唤醒锁来保持 CPU 运行,确保应用能够完成特定任务,如下载文件或执行后台操作。
- 保持屏幕亮起:在需要用户查看内容的情况下(例如,导航应用),可以保持屏幕常亮,防止设备进入休眠状态。