安卓日历每日提醒_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.电视等电子设备已经成为我们日常生活.工作.学习不可或缺的一部分了,不过长时间使用这些设备的话,将会造成我们的视力疲劳,还有可能 ...
最新文章
- 建设有竞争力的APP开发团队
- Luogu P1262 间谍网络 【强连通分量/缩点】By cellur925
- centos 并发请求数_Linux Shell多进程并发以及并发数控制
- docker安装elasticsearch并进行目录挂载
- 来和小伙伴一起学习响应式网页设计吧
- linux mysql cron_定时MySQL动作-Linux下用Cron现定时执行脚本
- 速进!2000核实计算资源免费领取,名额有限,即开即送!
- 认识HttpModule
- ACDU活动回顾:@DBA,前辈指路不迷茫
- 简述控制反转ioc_Spring学习之——控制反转(IoC)与依赖注入(DI)
- E人E本的android突破与行业走向
- 算法:管窥算法-零子数组
- centos 7 升级python2.7 到3.5
- ubuntu 虚拟显示器制作
- matlab图像光照效果模拟
- 基于FBX SDK的FBX模型解析与加载
- 【SQL SERVER 2005+版本行转列示例】(2012年1-8月水源槑党25强榜单新鲜出炉)
- android 5.1 flash,Flash Player for Android 4.0 and 5.1 以上版本(提供下載)
- mysql on.000002_mysql | 同乐学堂
- Java 课程设计--数据库管理系统
热门文章
- 鼠标移入移出时定时器加速的原因_《Among Us》网易UU加速器带你体验太空狼人杀...
- 2021.10.15数字货币小计
- Stegsolve.jar打不开,jar类文件都打不开可能的解决办法
- Unittest框架介绍
- lua游戏服务器热更新
- C#时间格式 AM\ PM
- 计算机主板测评,评测部分及总结
- cpu核数和逻辑个数的区别_区别: CPU 路数、CPU 核数、物理 CPU 个数、逻辑 CPU 个数...
- 小程序中使用阿里字体图标
- CSS3简单特效--animation实现流光按钮