安卓日历每日提醒_Android实现每天定时提醒功能
这个是设置定时提醒的功能,即设置几点几分后提醒,用的是给系统设置个时间点,当系统时间到达设置的时间点的时候就会给我们发送一个广播,然后达到时间提醒功能
网上找了很多,遇到了很多坑,经过摸索出来的,比如下面设置重复时间的第二个参数,网上有很多说是执行提醒延时多少毫秒执行,我用的刷了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实现每天定时提醒功能相关推荐
- 安卓日历每日提醒_android 设置系统闹钟和系统日历提醒
现在有一个定时提醒的功能, 用 AlarmManager 自己来做,有多少坑做过的都知道.(应用被kill, 应用保活,息屏,关机重启,多版本兼容问题...).要自己做一个完善的不是 1-2天就能搞定 ...
- 如何在Win10日历便签中设置添加定时提醒和活动
Win10系统是很多职场人士正在使用的电脑系统,那么在win10系统中如何添加定时提醒活动呢?有人喜欢用电脑日历便签.因为在日历便签上记事,可以清晰地查看某一个月都在哪几天添加或者完成了什么事情. W ...
- 定时提醒软件有哪些 定时提醒便签推荐
随着社会发展节奏越来越快,人们的日程事物也越来越多.一款优秀的定时提醒软件不但可以帮助你合理安排工作.处理紧急事件,还能规划休息时间,让大脑劳逸结合保持精力和创造力. 敬业签的提醒功能非常多样化,除了 ...
- android 定时提醒service,android之定时提醒功能(周循环)
一.需求介绍 不日前项目有个需求,做个提醒功能,类似市面上闹钟功能.下面附上需求界面 首先对需求进行解析,基本上就是闹钟的功能,只不过简化了一点,就是只有两个闹钟,一个是接小孩上学闹钟提醒,一个是接小 ...
- php每天定时提醒,PHP怎么实现定时提醒功能?
推荐使用workerman 或 swoole //获取定时任务的配置 $timing_task=api_base::load_config('zip_remove'); if($timing_task ...
- java 创建日程到期提醒_在便签提醒类APP排行中哪个软件可以定时提醒每日日程待办?...
在网络上搜索提醒类APP排行时,我们不难发现提醒类的APP是比较多的,使用提醒类APP时,大家可以将比较重要的工作计划.待办事项以及纪念日一一记录在提醒软件上,然后设置提醒时间,在到达提醒时间时软件会 ...
- 在便签提醒类APP排行中哪个软件可以定时提醒每日日程待办?
在网络上搜索提醒类APP排行时,我们不难发现提醒类的APP是比较多的,使用提醒类APP时,大家可以将比较重要的工作计划.待办事项以及纪念日一一记录在提醒软件上,然后设置提醒时间,在到达提醒时间时软件会 ...
- Ubuntu使用notify-send 与 crontab 实现定时提醒
notify-send是系统自带的工具,用于在桌面弹出提醒弹窗,使用方法: $ notify-send "test" 也可以使用-i参数指定icon: $ notify-send ...
- android护眼提醒,安卓手机上怎么设置定时提醒休息的护眼提醒?
原标题:安卓手机上怎么设置定时提醒休息的护眼提醒? 手机.电脑.ipad.电视等电子设备已经成为我们日常生活.工作.学习不可或缺的一部分了,不过长时间使用这些设备的话,将会造成我们的视力疲劳,还有可能 ...
最新文章
- 数据结构实验之链表一:顺序建立链表
- 硬盘数据丢失,到底该如何修复?
- Go 语言编程 — 作用域
- Entity相互关系
- GitHub轻松阅读微服务实战项目流程详解【第一天:数据库表设计及其环境搭建、项目运行】
- TCP和UDP套接字编程
- 一段话系列-Java是否是解释执行语言?
- 辽宁省大学生计算机系统与程序设计竞赛,2019CCF大学生计算机系统与程序设计竞赛(华东分赛区)在我校顺利举办...
- js 根据固定位置获取经纬度--腾讯地图
- 基于SSM的勤工助学管理系统
- 小白学习vuex的超级全面版本
- emacs,objective-c mode 代码补全!
- 实习成长之路: MySQL三 : 事务隔离:为什么你改了我还看不见?
- 支付宝小程序 alipays协议链接跳转
- 净利同比下滑14.5%,康师傅的“水”和“面”还好卖吗?
- 喜欢这样的游戏---流畅的俯视坦克射击游戏
- 构建高并发高可用的电商平台架构实践(一)
- ubuntu快捷键备忘
- ubuntu16.04 opencv3.3 python2.7 caffe GPU环境搭建
- 用PE安装win11系统