这个是设置定时提醒的功能,即设置几点几分后提醒,用的是给系统设置个时间点,当系统时间到达设置的时间点的时候就会给我们发送一个广播,然后达到时间提醒功能

网上找了很多,遇到了很多坑,经过摸索出来的,比如下面设置重复时间的第二个参数,网上有很多说是执行提醒延时多少毫秒执行,我用的刷了MIUI的三星手机测试怎么都不对,经过摸索测试才发现,原来不是,原来那个参数是设定的时间点的毫秒值!好了,不多说,看代码:

/*** 开启提醒*/private void startRemind(){//得到日历实例,主要是为了下面的获取时间mCalendar = Calendar.getInstance();mCalendar.setTimeInMillis(System.currentTimeMillis());//获取当前毫秒值long systemTime = System.currentTimeMillis();//是设置日历的时间,主要是让日历的年月日和当前同步mCalendar.setTimeInMillis(System.currentTimeMillis());// 这里时区需要设置一下,不然可能个别手机会有8个小时的时间差mCalendar.setTimeZone(TimeZone.getTimeZone("GMT+8"));//设置在几点提醒  设置的为13点mCalendar.set(Calendar.HOUR_OF_DAY, 13);//设置在几分提醒  设置的为25分mCalendar.set(Calendar.MINUTE, 25);//下面这两个看字面意思也知道mCalendar.set(Calendar.SECOND, 0);mCalendar.set(Calendar.MILLISECOND, 0);//上面设置的就是13点25分的时间点//获取上面设置的13点25分的毫秒值long selectTime = mCalendar.getTimeInMillis();// 如果当前时间大于设置的时间,那么就从第二天的设定时间开始if(systemTime > selectTime) {mCalendar.add(Calendar.DAY_OF_MONTH, 1);}//AlarmReceiver.class为广播接受者Intent intent = new Intent(MainActivity.this, AlarmReceiver.class);PendingIntent pi = PendingIntent.getBroadcast(MainActivity.this, 0, intent, 0);//得到AlarmManager实例AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);//**********注意!!下面的两个根据实际需求任选其一即可*********/*** 单次提醒* mCalendar.getTimeInMillis() 上面设置的13点25分的时间点毫秒值*/am.set(AlarmManager.RTC_WAKEUP, mCalendar.getTimeInMillis(), pi);/*** 重复提醒* 第一个参数是警报类型;下面有介绍* 第二个参数网上说法不一,很多都是说的是延迟多少毫秒执行这个闹钟,但是我用的刷了MIUI的三星手机的实际效果是与单次提醒的参数一样,即设置的13点25分的时间点毫秒值* 第三个参数是重复周期,也就是下次提醒的间隔 毫秒值 我这里是一天后提醒*/am.setRepeating(AlarmManager.RTC_WAKEUP, mCalendar.getTimeInMillis(), (1000 * 60 * 60 * 24), pi);}/*** 关闭提醒*/private void stopRemind(){Intent intent = new Intent(MainActivity.this, AlarmReceiver.class);PendingIntent pi = PendingIntent.getBroadcast(MainActivity.this, 0,intent, 0);AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);//取消警报am.cancel(pi);Toast.makeText(this, "关闭了提醒", Toast.LENGTH_SHORT).show();}

上面第一个参数的详解:

AlarmManager.RTC,硬件闹钟,不唤醒手机(也可能是其它设备)休眠;当手机休眠时不发射闹钟。
AlarmManager.RTC_WAKEUP,硬件闹钟,当闹钟发躰时唤醒手机休眠;
AlarmManager.ELAPSED_REALTIME,真实时间流逝闹钟,不唤醒手机休眠;当手机休眠时不发射闹钟。
AlarmManager.ELAPSED_REALTIME_WAKEUP,真实时间流逝闹钟,当闹钟发躰时唤醒手机休眠;RTC闹钟和ELAPSED_REALTIME最大的差别就是前者可以通过修改手机时间触发闹钟事件,后者要通过真实时间的流逝,即使在休眠状态,时间也会被计算。

然后写广播接受者:

public class AlarmReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {//当系统到我们设定的时间点的时候会发送广播,执行这里}
}

最后别忘了给广播接受者配置清单文件:

<receiverandroid:name=".receiver.AlarmReceiver"android:process=":remote"/>

使用方法就直接调用启动提醒或关闭提醒就行

当然,这么做需要app常驻后台,如果被干掉就GG了,所以常规做法是使用推送消息来实现定时任务!

Android每天定时提醒功能、定时功能、闹钟相关推荐

  1. html5 桌面定时提醒,C#定时提醒休息小工具源码(可自动显示桌面和动画)

    定时休息,自动显示桌面和动画. 提供C#源代码. 到了指定休息的时间会弹出如下动画效果: 资源下载此资源下载价格为3D币,请先登录 资源文件列表 ShowDesktop/src/Properties/ ...

  2. 每天定时提醒 每周定时提醒

    //每天10点更新提示 -(void)alertByDay{ NSDate *date = [NSDate date]; NSCalendar *calendar = [NSCalendar curr ...

  3. 会定时提醒的贴心提示板之核心语音芯片(WT588F02B)和闹钟部件

    概述 你是不是经常忘记做某些事情?你是不是经常沉浸在自己的工作中而错过了其他的工作?你是否想要一个没有手机干扰但是也不会错过任何事情的环境?这款基于WT588F02B-8S芯片带语音播放和闹钟提醒的的 ...

  4. 定时提醒软件有哪些 定时提醒便签推荐

    随着社会发展节奏越来越快,人们的日程事物也越来越多.一款优秀的定时提醒软件不但可以帮助你合理安排工作.处理紧急事件,还能规划休息时间,让大脑劳逸结合保持精力和创造力. 敬业签的提醒功能非常多样化,除了 ...

  5. Java开发的定时提醒助手,免费下载使用

    定时提醒助手 定时提醒助手百度云下载 下载地址:https://pan.baidu.com/s/16D6MyuKXtELAhzXRDTU0QA 工作中经常要在特定的时间做一些事情,网上下载的一些提醒助 ...

  6. 配置Hi提醒的定时提醒任务,微信短信提醒还不够?那就直接打电话吧

    我一直就想每天都有个声音甜美的小姐姐 提醒叫我起床,哈哈哈. 现在终于可以,是不是小姐姐 你试试就知道啦! 那么我们就来看看如何创建定时任务及设置说明 定时提醒属于定时触发任务类型,达到设定的时间就会 ...

  7. 毫秒级精度计划任务管理、系统运维管理、定时执行任务、定时任务执行、任务定时执行软件 —— 定时执行专家

    目录 一.使用教程 1.软件下载 2.软件的安装方法 3.软件第一次运行,选择界面语言 4.设置软件开机启动,自动运行.自动隐藏(自动隐身运行) 二.软件简介 1.支持 23 种任务类型 2.支持 1 ...

  8. Android 每天定时提醒功能实现

    android要实现定时的功能那肯定就要用到闹铃相关的技术, 那么android闹铃实现是基于 AlarmManager 这个类的,首先我们来看一下它的几个主要的方法. 打开AlarmManager的 ...

  9. android定时提醒功能,Android后台定时提醒功能实现

    需要类似的功能,找了很久,估计这个能让我实现.转一下. https://blog.csdn.net/qq_34445403/article/details/78727477 考虑到自己每次在敲代码或者 ...

最新文章

  1. ubuntu mysql允许远程连接mysql_ubuntu下允许mysql远程连接
  2. float 属性详解
  3. 香蕉派路由功Openwrt、Android功耗对照測试
  4. JavaScript URL参数读取
  5. 数据库:分享六个 MySQL 死锁案例,能让你理解死锁的原因!
  6. 继承、关联、聚合、组合的代码表示
  7. jQuery实现留言板
  8. 17.1.1 颜色和 RGBA 值
  9. tomcat运行超时问题解决
  10. Gradle 2.0 用户指南翻译——第五十四章. 构建本机二进制文件
  11. 良田高拍仪接口文档对接
  12. 简单修复MacOS High Sierra 允许 Root 用户无密码登录的安全 Bug
  13. JS Array数组和函数
  14. docker exec -it container1 /bin/bash 异常
  15. 三个月达到百万日活,梨视频如何借助云计算做最好看的资讯短视频?
  16. Friendship of Frog
  17. 3G无线上网分析、优惠以及推荐选择
  18. 信息学奥赛一本通2038
  19. ptcms模板自动采集小说系统源码
  20. 启动vue项目报错:npm ERR! enoent ENOENT: no such file or directory, open‘E:xxxx\package.json‘

热门文章

  1. 远程连接不上阿里云(Ubuntu20.04)Mysql8.0
  2. APS计划排产软件实现新能源汽车企业人员结构优化
  3. 幼子嘟嘟谈美国文化系列6 美国文化另一重要主线--体育(下)
  4. 极速解压/压缩工具:MyZip Pro专业版 for Mac
  5. NEXYS4_DDR迪芝伦XC7A100TCSG324-1型,ADT7420测温
  6. 因特尔神经计算棒(NCS)+树莓派+yolo-v3实现object-detection
  7. 为什么国外的 App 很少会有开屏广告?
  8. 计算机图形学 第六章 图形变换
  9. 计算机考研没有歧视的学校,考研择校!20所不歧视本科,保护第一志愿的宝藏学校...
  10. 看准再下手 6000以下最值得购买8款本