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

网上找了很多,遇到了很多坑,经过摸索出来的,比如下面设置重复时间的第二个参数,网上有很多说是执行提醒延时多少毫秒执行,我用的刷了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. 建设有竞争力的APP开发团队
  2. Luogu P1262 间谍网络 【强连通分量/缩点】By cellur925
  3. centos 并发请求数_Linux Shell多进程并发以及并发数控制
  4. docker安装elasticsearch并进行目录挂载
  5. 来和小伙伴一起学习响应式网页设计吧
  6. linux mysql cron_定时MySQL动作-Linux下用Cron现定时执行脚本
  7. 速进!2000核实计算资源免费领取,名额有限,即开即送!
  8. 认识HttpModule
  9. ACDU活动回顾:@DBA,前辈指路不迷茫
  10. 简述控制反转ioc_Spring学习之——控制反转(IoC)与依赖注入(DI)
  11. E人E本的android突破与行业走向
  12. 算法:管窥算法-零子数组
  13. centos 7 升级python2.7 到3.5
  14. ubuntu 虚拟显示器制作
  15. matlab图像光照效果模拟
  16. 基于FBX SDK的FBX模型解析与加载
  17. 【SQL SERVER 2005+版本行转列示例】(2012年1-8月水源槑党25强榜单新鲜出炉)
  18. android 5.1 flash,Flash Player for Android 4.0 and 5.1 以上版本(提供下載)
  19. mysql on.000002_mysql | 同乐学堂
  20. Java 课程设计--数据库管理系统

热门文章

  1. 鼠标移入移出时定时器加速的原因_《Among Us》网易UU加速器带你体验太空狼人杀...
  2. 2021.10.15数字货币小计
  3. Stegsolve.jar打不开,jar类文件都打不开可能的解决办法
  4. Unittest框架介绍
  5. lua游戏服务器热更新
  6. C#时间格式 AM\ PM
  7. 计算机主板测评,评测部分及总结
  8. cpu核数和逻辑个数的区别_区别: CPU 路数、CPU 核数、物理 CPU 个数、逻辑 CPU 个数...
  9. 小程序中使用阿里字体图标
  10. CSS3简单特效--animation实现流光按钮