android实现每天定时提醒的功能

2023-11-13

有时开发中有这样的需求,每天几点定时提醒等等,下面就来实现这个功能。

首先新建一个广播接收者

public class AlarmReceiver  extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Log.e("--------收到提醒");
         //TODO 实现功能

        //重新计时第二天七点的
        Intent i = new Intent(context, RemindService.class);
        context.startService(i);
    }
}

然后创建一个服务

public class RemindService extends Service {
     int count = 0;
     @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
         AlarmManager manager = (AlarmManager) getSystemService(ALARM_SERVICE);
        Long secondsNextEarlyMorning = Utils.getSecondsNextEarlyMorning(8);
        Intent i = new Intent(this, AlarmReceiver.class);
        PendingIntent pi = PendingIntent.getBroadcast(this, count++, i, PendingIntent.FLAG_UPDATE_CURRENT);
        manager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + secondsNextEarlyMorning, pi);
        return super.onStartCommand(intent, flags, startId);
    }

}

最后获取当前时间到第二天几点的时间差

public class Utils {

 /**
     * 获取时间差
     */
    public static Long getSecondsNextEarlyMorning(int num) {
        Calendar cal = Calendar.getInstance();
        if (cal.get(Calendar.HOUR_OF_DAY) - num >= 0) {
            //如果当前时间大于等于8点 就计算第二天的8点的
            cal.add(Calendar.DAY_OF_YEAR, 1);
        } else {
            cal.add(Calendar.DAY_OF_YEAR, 0);
        }
        cal.set(Calendar.HOUR_OF_DAY, num);
        cal.set(Calendar.SECOND, 0);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.MILLISECOND, 0);
        Long seconds = (cal.getTimeInMillis() - System.currentTimeMillis());

        return seconds.longValue();
    }

}

这样就可以实现每天几点定时任务了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android实现每天定时提醒的功能 的相关文章

  • karma配置及使用

    karma配置及使用 一 定义 Karma不是测试框架 也不是断言库 Karma是一个测试工具 一个允许在多个真实浏览器中执行JavaScript代码的工具 为开发人员提供高效的测试环境 代码可能是设计在浏览器端执行的 在node环境下测试
  • qnx的汽车全液晶仪表-基于qnx系统的汽车仪表-车机系统开发

    如果你认为本系列文章对你有所帮助 请大家有钱的捧个钱场 点击此处赞助 赞助额0 1元起步 多少随意 声明 本文只用于个人学习交流 若不慎造成侵权 请及时联系我 立即予以改正 锋影 e mail 174176320 qq com QNX系统在
  • 3·15报道:“隔空盗刷”资金骗局曝出

    近些年顾客的网上购物等服务愈来愈多 许多犯罪分子根据 ETC卡禁止使用 快递丢失赔付 等骗术 哄骗顾客登陆诈骗网站对它进行行骗 3 15晚会视频表明 陈女士曾收到一条提醒她ETC卡已禁用短信 需登录网页开展签办 接着 陈女士点链接之后发现
  • vue.js——事件循环机制

    一 事件循环机制介绍 JS是单线程的语言 浏览器和Node js定义了各自的Event Loop 事件循环机制 则是用来解决异步问题 将程序分为 主线程 执行栈 与 Event Loop线程 主线程 自上而下依次执行同步任务 Event L
  • 毕业设计 - 基于java web的在线考试系统【源码+论文】

    文章目录 前言 一 项目设计 1 模块设计 2 基本功能 2 1 登录功能 2 2 系统答题 2 3 答题得分 2 4 错题解析 3 实现效果 二 部分源码 项目源码 前言 今天学长向大家分享一个 Java web 项目 可用于毕业设计 课
  • vue新一代的状态管理器之pinia

    Pinia 简介 Pinia 是 Vue 新一代的轻量级状态管理库 相当于 Vuex 也是 Vue 核心团队推荐的状态管理库 同时支持 Vue2 和 Vue3 未来很有可能替代 Vuex 比 Vuex 更容易上手 特性 Pinia 具有以下
  • 探索未来的人机交互方式

    在21世纪 人工智能 AI 已成为科技领域的重要焦点 特别是在 生成式AI 这个细分领域中 所谓的 生成式AI 是指能够创造 理解和生成各种形式内容的人工智能系统 本文将重点探讨 生成式AI 报告中的重点词汇或短语 为您解析它的潜力与未来
  • 线程池+CountDownLatch 处理大集合

    场景 有一个需求 首先从数据库中取出上千条数据 然后需要逐条对数据进行分析 例如分析情感 是否重复等多项分析 解决 将取出来的上千条 分批 多线程处理 public class CountDownLatchTest public stati
  • C++ bitset的用法实例

    C bitset的用法实例 一 bitset 二 代码 三 总结 一 bitset 顾名思义 bitset是位bit的set集合 是可以当做容器使用的一种数据结构 bitset提供了一些很实用的方法 能用来替代C语言的直接按位运算带来的不便
  • 毕设基于深度学习的以图搜图系统 matlab语言

    毕设基于深度学习的以图搜图系统 matlab语言 文章目录 毕设基于深度学习的以图搜图系统 matlab语言 前言 一 实验数据集准备 二 软件设计 1 以图搜纸皮 2 以图搜花 实验总结 前言 随着人工智能的不断发展 深度学习这门技术也越
  • NFT颓势已现:肝不起了,卷不动了

    白名单制度是时候变革了 作者 星球小花 出品 Odaily星球日报 ID o daily 前几天 一位朋友问我 几个月没关注 NFT 了 你们怎么还在抢 PFP 我也反驳了一番 现在有很多圈外流量涌入 巨头纷纷进场 应用遍地开花 不过仔细想
  • C++中typeid的使用

    RTTI Run TimeType Information 运行时类型信息 它提供了运行时确定对象类型的方法 在C 中 为了支持RTTI提供了两个操作符 dynamic cast和typeid The typeid operator pro
  • 基于机器学习的文本分类!

    关注后 星标 Datawhale 每日干货 每月组队学习 不错过 Datawhale干货 作者 李露 西北工业大学 Datawhale优秀学习者 据不完全统计 网民们平均每人每周收到的垃圾邮件高达10封左右 垃圾邮件浪费网络资源的同时 还消
  • 基于Open CV的植物图像分类识别项目

    一 项目简介 1 主要内容 本项目主要是基于Open CV进行植物图像进行分类识别 展示部分采用了网页的形式 Vue Element net Core 由用户上传图片 服务器返回该图片的分类结果 Web服务 net Core 和c 图像处理
  • 《利用Python 进行数据分析》第四章:Numpy基础

    对 利用Python 进行数据分析 Wes Mckinney著 一书中的第四章中Numpy基础进行代码实验 原书中采用的是Python2 7 而我采用的Python3 7在Pycharm调试的 因此对书中源代码进行了一定的修改 每步打印结果
  • iOS开发常见错误代码对照表整理

    登录 注册 一样的世界 不一样的时间 随手记点东西 目录视图 摘要视图 订阅 2016软考项目经理实战班
  • 软件测试的缺陷管理与分析,粉丝福利拿走不谢

    软件测试过程中提交缺陷是测试工程师最常做的一件事 也是开发工程师解决问题的依据 所以需要对缺陷进行管理和分析 缺陷管理主要是管理从提交缺陷到解决缺陷这一系列的过程 包括流程中角色的变换 缺陷分析主要对测试过程中所发现的缺陷进行分类分析 分析
  • Java学习笔记(十四)

    Java 中的异常处理 在 Java 中 所有的异常都有一个共同的祖先 java lang 包中的 Throwable 类 Throwable 有两个重要的子类 Exception 异常 和 Error 错 误 二者都是 Java 异常处理
  • OSM数据下载及两种格式转换方法(shp等格式)

    OSM数据下载及两种常用的格式转换方法 1 首先打开OSM官网 https www openstreetmap org 2 先注册账号 再选择左上角的 导出 3 点击 手动选择不同的区域 4 导出即可 5 格式准换可以考虑以下两种方法 一是
  • mysql官网安装步骤_MySQL的安装与配置——详细教程

    免安装版的Mysql MySQL关是一种关系数据库管理系统 所使用的 SQL 语言是用于访问数据库的最常用的 标准化语言 其特点为体积小 速度快 总体拥有成本低 尤其是开放源码这一特点 在 Web 应用方面 MySQL 是最好的 RDBMS

随机推荐

  • 2022年度总结 EXI-小洲

    文章目录 一 第一次自我介绍 二 2022我都干了些什么 我的收获 1 大专顺利毕业 2 后端开发辞职 3 第二次代表学校参加江西省职业院校大数据技能大赛 4 专升本考试 5 参加泰迪杯第五届 数据分析技能赛 6 在csdn开始写博文 7
  • 常见渗透测试靶场系统

    常见靶场 DVWA Dam Vulnerable Web Application DVWA是用PHP Mysql编写的一套用于常规WEB漏洞教学和检测的WEB脆弱性测试程序 包含了SQL注入 XSS 盲注等常见的一些安全漏洞 链接地址 ht
  • Java中JSON字符串和Java对象的互转

    1 JSON数据和Java对象的相互转换 JSON数据和Java对象的相互转换 JSON解析器 常见的解析器 Jsonlib Gson fastjson jackson 1 Java对象转换JSON 1 使用步骤 1 导入jackson的相
  • python中的库和模块有什么区别_Python中的模块和库之间有什么区别?

    从 The Python Tutorial Modules gt 模块 A module is a file containing Python definitions and statements The file name is the
  • 美团面试官问:写一个你认为最好的单例模式?于是我写了7个

    各位CSDN的朋友 如果喜欢我的文章 记得点个关注 方便以后找到我 由于是刚开始创作 推荐量较低 如果不关注 以后就可能找不到我了 面试题 写一个你认为最好的单例模式 面试考察点 考察目的 单例模式可以考察非常多的基础知识 因此对于这种问题
  • 软考-中级-网络工程师-知识点个人总结(九)

    1 CPU部件 运算器 控制器 寄存器 运算器 算术逻辑运算器 累加器 数据缓冲寄存器 状态条件寄存器 控制器 程序计数器 指令寄存器 指令译码器 时序部件 2 测试依据 测试类型 测试内容 测试依据 黑盒测试 功能测试 对软件的每个功能进
  • 小程序里的alert,Toast

    前言 在小程序中的弹框写法和我们在外面直接用是不一样的 他不支持alert 但是有替代的弹框组件 目录 一 原生小程序 原生小程序api 二 vant中的提示框 官网入口 vant api 一 原生小程序 wx showToast titl
  • C# MSChart 中柱状图和X轴自定义标签

    C 中MSChart 里面曲线 柱状图的样式选择是由 chart Series ChartType SeriesChartType Column 来控制的 SeriesChartType列举出了所有的样式 如果要在X轴上显示自己的文本标签
  • ChatGPT和代码智能

    一 ChatGPT 1 ChatGPT的自我介绍 2 ChatGPT的前世 2 1GPT 3是啥 General Pre Training GPT 即通用预训练语言模型 是一种利用Transformer作为特征抽取器 基于语言模型进行训练的
  • 深入理解Google Cast(三)探寻原理

    如何开发一个receiver application 先来简单说一下这个话题 Receiver本质就是一个网页 由html CSS和jacascript开发 如果要自定义receiver application 需要在 Google Cas
  • LaTeX的斜体,粗体

    参考 LaTeX的斜体 粗体 云 社区 腾讯云 写文章的小伙伴应该知道 在文章中 变量是需要斜体的 那么怎么才是斜体呢 首先 在LATEX中 强调可以以斜体形式展现出来 那么强调命令是如何体现的呢 语法 emph 内容 打开Winedit
  • 【翻译】ASF 法律委员会发布贡献者生成式 AI 指南

    中英文对照版请点击 ASF 法律委员会发布贡献者生成式 AI 指南 中英文对照 查看 除非你在过去一年左右的时间里一直生活在岩石之下 否则你很可能已经听说过很多关于生成式人工智能如何快速发展并正在迅速改变我们所熟知的软件行业的事情 虽然猜测
  • python 利用chinese_calendar 获取上一个工作日日期

    截止文章发布chinese calendar版本为1 8 0 大约在每年的11月份更新次年的节假日新版本 import datetime from chinese calendar import is workday def get per
  • 多线程下事务控制

    我篇文章 大数据批量新增or修改太慢太Low 线程池 CountDownLatch CompletableFuture完美解决 弊端就是无法实现事务控制 那么今天他就来啦 需求 大数据平台去获取数据 gt 通过对象组装 gt 插入到对应的表
  • Hibernate中merge()方法的坑

    标题Hibernate的merge方法的原理网上已经有很多篇文章介绍了 执行merge后 如果传入的对象有ID merge会先去数据库通过ID查 若查到则改 若查不到则增 也就是说 相比直接insert或是update 用merge的实现会
  • 执行kubeadm init 安装kubernetes时报错: [ERROR FileExisting-conntrack]: conntrack not found in system path

    使用kubeadin init安装kubernetes时报如下错误 解决方法 yum y install socat conntrack tools
  • STM32基于HAL库的开发与应用(2)GPIO口控制

    一 GPIO口是在单片机开发应用中使用最频繁的一个控制 GPIO口可作为输出高低电平也可以作为输入检测输入电平的高低 1 通常GPIO口输出控制LED灯 有源蜂鸣器等一些只需要高低电平就可以触发的模块 2 通常GPIO口作为输入 用来检测输
  • dz论坛伪静态加http跳转https遗留问题apache配置ssl

    一 首先 申请并且配置好服务器ssl证书 阿里 腾讯都有免费的 同时都有教程 下载apache格式的证书 解压后放到d ssl 目录 打开 D phpStudy Apache conf httpd conf 在最后面添加SSL配置
  • 2.基于原型的聚类方法

    基于原型的聚类方法 文章目录 一 概念 二 K Means 2 1 算法流程 2 2 超参数 2 3 特性 2 4 解析 2 5 K Means 2 6 Python实现 三 K Mediods 3 1 概念 3 2 算法对比 四 特性 一
  • android实现每天定时提醒的功能

    有时开发中有这样的需求 每天几点定时提醒等等 下面就来实现这个功能 首先新建一个广播接收者 public class AlarmReceiver extends BroadcastReceiver Override public void