当前位置: 首页 > article >正文

Android 开发每日定时任务

1、先注册一个广播

setDailyAlarm();
        IntentFilter filter3 = new IntentFilter("UPDATERULE");
        registerReceiver(updateRuleReceive, filter3);
private BroadcastReceiver updateRuleReceive = new BroadcastReceiver() {
        @Override
        public 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 运行,确保应用能够完成特定任务,如下载文件或执行后台操作。
  • 保持屏幕亮起:在需要用户查看内容的情况下(例如,导航应用),可以保持屏幕常亮,防止设备进入休眠状态。

http://www.kler.cn/a/329762.html

相关文章:

  • Python操作Excel——openpyxl使用笔记(3)
  • YoloV10改进策略:Neck层改进|EFC,北理提出的适用小目标的特征融合模块|即插即用
  • JVM直击重点
  • Ubuntu本地部署网站
  • 【从零开始使用系列】StyleGAN2:开源图像生成网络——环境搭建与基础使用篇(附大量测试图)
  • Android SystemUI——车载CarSystemUI加载(八)
  • Elasticsearch 使用误区之六——富文本内容写入前不清洗
  • Host文件及switchhosts for mac下载
  • vue3打包疯狂报错
  • 域内用户名枚举 实验
  • 计算机网络的整体认识---网络协议,网络传输过程
  • 媒体专访 | 探寻国家级农业产业化重点龙头企业九三食品的数字化转型破局之路
  • 如何让虚拟机与本地电脑使用同一个ip
  • 基于安卓开发大型体育场管理系统的设计与实现(源码+定制+讲解)
  • 服务器虚拟化软件介绍
  • 【C++掌中宝】从std的角度来进一步了解命名空间
  • AndroidStudio导入so文件
  • 简单理解程序地址空间:Linux 中的内存映射与页表解析
  • 基于单片机语音智能导盲仪仿真设计
  • 动态顺序表的增删改查(数据结构)
  • windows 桌面采集音频
  • SpringBoot启动过程简述 和 SpringCloud 的五大组键
  • Vue下载pubsub-js中错误问题解决
  • Unity角色控制及Animator动画切换如走跑跳攻击全流程详解
  • 爬取元气手机壁纸简单案例(仅用于教学,禁止任何非法获利)
  • Activiti7 工作流引擎学习