1、先注册一个广播
setDailyAlarm();IntentFilter filter3 = new IntentFilter("UPDATERULE");registerReceiver(updateRuleReceive, filter3);
private BroadcastReceiver updateRuleReceive = new BroadcastReceiver() {@Overridepublic void onReceive(Context context, Intent intent) {getOfflineRule();}};
2、使用AlarmManager,在onCreate执行方法
介绍:AlarmManager
是 Android 提供的一个系统服务,用于在指定的时间安排任务。它可以在应用处于后台或关闭时唤醒设备并执行指定的操作
//每天定时同步离线规则功能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、添加权限
<uses-permission android:name="android.permission.WAKE_LOCK" />
用途:
- 保持 CPU 活动:当设备处于休眠状态时,应用可以使用唤醒锁来保持 CPU 运行,确保应用能够完成特定任务,如下载文件或执行后台操作。
- 保持屏幕亮起:在需要用户查看内容的情况下(例如,导航应用),可以保持屏幕常亮,防止设备进入休眠状态。