当前位置: 首页 > 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/news/329762.html

相关文章:

  • Elasticsearch 使用误区之六——富文本内容写入前不清洗
  • Host文件及switchhosts for mac下载
  • vue3打包疯狂报错
  • 域内用户名枚举 实验
  • 计算机网络的整体认识---网络协议,网络传输过程
  • 媒体专访 | 探寻国家级农业产业化重点龙头企业九三食品的数字化转型破局之路
  • 如何让虚拟机与本地电脑使用同一个ip
  • 基于安卓开发大型体育场管理系统的设计与实现(源码+定制+讲解)
  • 服务器虚拟化软件介绍
  • 【C++掌中宝】从std的角度来进一步了解命名空间
  • AndroidStudio导入so文件
  • 简单理解程序地址空间:Linux 中的内存映射与页表解析
  • 基于单片机语音智能导盲仪仿真设计
  • 动态顺序表的增删改查(数据结构)
  • windows 桌面采集音频
  • SpringBoot启动过程简述 和 SpringCloud 的五大组键
  • Vue下载pubsub-js中错误问题解决
  • Unity角色控制及Animator动画切换如走跑跳攻击全流程详解
  • 爬取元气手机壁纸简单案例(仅用于教学,禁止任何非法获利)
  • Activiti7 工作流引擎学习
  • 【文心智能体 | AI大师工坊】如何使用智能体插件,完成一款旅游类智能体的开发,来体验一下我的智能体『​​​​​​​厦门CityWalk』
  • ②无需编程 独立通道 Modbus主站EtherNet/IP转ModbusRTU/ASCII工业EIP网关串口服务器
  • WebRTC Connection Negotiate解决
  • 遥感图像语义分割数据集制作(使用ArcGIS Pro)
  • C++中substr用法记录
  • 开源链动2+1模式、AI智能名片与S2B2C商城小程序在精准选品与定位决策中的应用
  • 大数据毕业设计选题推荐-广东旅游数据分析系统-Hive-Hadoop-Spark
  • 问:JAVA中阻塞队列的概念、原理及使用场景?
  • springboot基于Vue的电影在线预定与管理系统
  • C0012.Clion改用VS编译器开发Qt界面