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

网上找了很多,遇到了很多坑,经过摸索出来的,比如下面设置重复时间的第二个参数,网上有很多说是执行提醒延时多少毫秒执行,我用的刷了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) {
//当系统到我们设定的时间点的时候会发送广播,执行这里
}
}
最后别忘了给广播接受者配置清单文件:
<receiver android:name=".receiver.AlarmReceiver" android:process=":remote" />
使用方法就直接调用启动提醒或关闭提醒就行
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# android
# 每天定时提醒
# 定时提醒
# 定时提醒功能
# Android4.4开发之电池低电量告警提示原理与实现方法分析
# Android后台定时提醒功能实现
# Android基于广播事件机制实现简单定时提醒功能代码
# android获取情景模式和铃声 实现震动、铃声提醒
# 详解Android中Notification通知提醒
# Android编程设置提醒事件的方法
# Android高仿微信5.2.1主界面及消息提醒
# Android提醒微技巧你真的了解Dialog、Toast和Snackbar吗
# Android 开发之Dialog
# Toast
# Snackbar提醒
# Android开发之使用通知栏显示提醒信息的方法
# Android编程实现添加低电流提醒功能的方法
# 的是
# 第一个
# 我用
# 第二个
# 几分
# 几点
# 网上
# 三星手机
# 刷了
# 就会
# 会有
# 好了
# 也会
# 有很多
# 第二天
# 给我们
# 这两个
# 就行
# 可以通过
# 才发现
相关文章:
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
平台云上自主建站:模板化设计与智能工具打造高效网站
公司网站制作费用多少,为公司建立一个网站需要哪些费用?
如何生成腾讯云建站专用兑换码?
网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?
建站之星代理如何优化在线客服效率?
制作电商网页,电商供应链怎么做?
如何用5美元大硬盘VPS安全高效搭建个人网站?
制作网站的公司有哪些,做一个公司网站要多少钱?
南京网站制作费用,南京远驱官方网站?
网站图片在线制作软件,怎么在图片上做链接?
建站168自助建站系统:快速模板定制与SEO优化指南
如何选择香港主机高效搭建外贸独立站?
建站之星好吗?新手能否轻松上手建站?
C++时间戳转换成日期时间的步骤和示例代码
专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?
建站主机数据库如何配置才能提升网站性能?
Python多线程使用规范_线程安全解析【教程】
建站之星备案流程有哪些注意事项?
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】
网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?
建站org新手必看:2024最新搭建流程与模板选择技巧
如何构建满足综合性能需求的优质建站方案?
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
智能起名网站制作软件有哪些,制作logo的软件?
网站制作壁纸教程视频,电脑壁纸网站?
如何通过FTP服务器快速搭建网站?
常州自助建站:操作简便模板丰富,企业个人快速搭建网站
小型网站建站如何选择虚拟主机?
怎么将XML数据可视化 D3.js加载XML
如何用虚拟主机快速搭建网站?详细步骤解析
想学网站制作怎么学,建立一个网站要花费多少?
c# await 一个已经完成的Task会发生什么
深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?
广东企业建站网站优化与SEO营销核心策略指南
整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?
高防服务器租用指南:配置选择与快速部署攻略
如何在万网开始建站?分步指南解析
番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?
如何在腾讯云免费申请建站?
宝塔建站助手安装配置与建站模板使用全流程解析
如何在IIS服务器上快速部署高效网站?
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
制作企业网站建设方案,怎样建设一个公司网站?
建站主机选购指南:核心配置优化与品牌推荐方案
阿里云网站制作公司,阿里云快速搭建网站好用吗?
教学网站制作软件,学习*后期制作的网站有哪些?
家庭服务器如何搭建个人网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。