全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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) {
    //当系统到我们设定的时间点的时候会发送广播,执行这里
  }
}

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

<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小时内与您取得联系。