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

网上找了很多,遇到了很多坑,经过摸索出来的,比如下面设置重复时间的第二个参数,网上有很多说是执行提醒延时多少毫秒执行,我用的刷了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 {

@Override

public void onReceive(Context context, Intent intent) {

//当系统到我们设定的时间点的时候会发送广播,执行这里

}

}

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

android:name=".receiver.AlarmReceiver"

android:process=":remote"

/>

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

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!

安卓日历每日提醒_Android实现每天定时提醒功能相关推荐

  1. 安卓日历每日提醒_android 设置系统闹钟和系统日历提醒

    现在有一个定时提醒的功能, 用 AlarmManager 自己来做,有多少坑做过的都知道.(应用被kill, 应用保活,息屏,关机重启,多版本兼容问题...).要自己做一个完善的不是 1-2天就能搞定 ...

  2. 如何在Win10日历便签中设置添加定时提醒和活动

    Win10系统是很多职场人士正在使用的电脑系统,那么在win10系统中如何添加定时提醒活动呢?有人喜欢用电脑日历便签.因为在日历便签上记事,可以清晰地查看某一个月都在哪几天添加或者完成了什么事情. W ...

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

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

  4. android 定时提醒service,android之定时提醒功能(周循环)

    一.需求介绍 不日前项目有个需求,做个提醒功能,类似市面上闹钟功能.下面附上需求界面 首先对需求进行解析,基本上就是闹钟的功能,只不过简化了一点,就是只有两个闹钟,一个是接小孩上学闹钟提醒,一个是接小 ...

  5. php每天定时提醒,PHP怎么实现定时提醒功能?

    推荐使用workerman 或 swoole //获取定时任务的配置 $timing_task=api_base::load_config('zip_remove'); if($timing_task ...

  6. java 创建日程到期提醒_在便签提醒类APP排行中哪个软件可以定时提醒每日日程待办?...

    在网络上搜索提醒类APP排行时,我们不难发现提醒类的APP是比较多的,使用提醒类APP时,大家可以将比较重要的工作计划.待办事项以及纪念日一一记录在提醒软件上,然后设置提醒时间,在到达提醒时间时软件会 ...

  7. 在便签提醒类APP排行中哪个软件可以定时提醒每日日程待办?

    在网络上搜索提醒类APP排行时,我们不难发现提醒类的APP是比较多的,使用提醒类APP时,大家可以将比较重要的工作计划.待办事项以及纪念日一一记录在提醒软件上,然后设置提醒时间,在到达提醒时间时软件会 ...

  8. Ubuntu使用notify-send 与 crontab 实现定时提醒

    notify-send是系统自带的工具,用于在桌面弹出提醒弹窗,使用方法: $ notify-send "test" 也可以使用-i参数指定icon: $ notify-send ...

  9. android护眼提醒,安卓手机上怎么设置定时提醒休息的护眼提醒?

    原标题:安卓手机上怎么设置定时提醒休息的护眼提醒? 手机.电脑.ipad.电视等电子设备已经成为我们日常生活.工作.学习不可或缺的一部分了,不过长时间使用这些设备的话,将会造成我们的视力疲劳,还有可能 ...

最新文章

  1. 数据结构实验之链表一:顺序建立链表
  2. 硬盘数据丢失,到底该如何修复?
  3. Go 语言编程 — 作用域
  4. Entity相互关系
  5. GitHub轻松阅读微服务实战项目流程详解【第一天:数据库表设计及其环境搭建、项目运行】
  6. TCP和UDP套接字编程
  7. 一段话系列-Java是否是解释执行语言?
  8. 辽宁省大学生计算机系统与程序设计竞赛,2019CCF大学生计算机系统与程序设计竞赛(华东分赛区)在我校顺利举办...
  9. js 根据固定位置获取经纬度--腾讯地图
  10. 基于SSM的勤工助学管理系统
  11. 小白学习vuex的超级全面版本
  12. emacs,objective-c mode 代码补全!
  13. 实习成长之路: MySQL三 : 事务隔离:为什么你改了我还看不见?
  14. 支付宝小程序 alipays协议链接跳转
  15. 净利同比下滑14.5%,康师傅的“水”和“面”还好卖吗?
  16. 喜欢这样的游戏---流畅的俯视坦克射击游戏
  17. 构建高并发高可用的电商平台架构实践(一)
  18. ubuntu快捷键备忘
  19. ubuntu16.04 opencv3.3 python2.7 caffe GPU环境搭建
  20. 用PE安装win11系统

热门文章

  1. Hexo搭建个人博客模板(附源码)
  2. 智慧文旅解决方案-最新全套合集
  3. iOS完整App资源收集
  4. Qt执行bash命令并获取返回结果
  5. 有哪些值得关注的技术博客
  6. react引入阿里字体图标iconfont
  7. 2023年纳米材料和纳米技术前沿国际会议(NanoMT 2023)
  8. 手把手教你做智能LED灯(三) 手机控制端开发
  9. 手机遥控Arduino灯(一)
  10. V神已抵京, 倒计时4天! 6大理由告诉你为什么要参加2019以太坊技术及应用大会...