有时开发中有这样的需求,每天几点定时提醒,满足条件警报等等,下面就来实现这个功能。

文章目录

  • 首先新建一个广播接收者
  • 然后创建一个服务
  • 最后获取当前时间到第二天几点的时间差

首先新建一个广播接收者

public class AlarmReceiver  extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {Log.e("--------收到提醒");//TODO 实现功能//重新计时第二天七点的Intent i = new Intent(context, RemindService.class);context.startService(i);}
}

然后创建一个服务

public class RemindService extends Service {int count = 0;@Overridepublic int onStartCommand(Intent intent, int flags, int startId) {AlarmManager manager = (AlarmManager) getSystemService(ALARM_SERVICE);Long secondsNextEarlyMorning = Utils.getSecondsNextEarlyMorning(8);Intent i = new Intent(this, AlarmReceiver.class);PendingIntent pi = PendingIntent.getBroadcast(this, count++, i, PendingIntent.FLAG_UPDATE_CURRENT);manager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + secondsNextEarlyMorning, pi);return super.onStartCommand(intent, flags, startId);}}

最后获取当前时间到第二天几点的时间差

public class Utils {/*** 获取时间差*/public static Long getSecondsNextEarlyMorning(int num) {Calendar cal = Calendar.getInstance();if (cal.get(Calendar.HOUR_OF_DAY) - num >= 0) {//如果当前时间大于等于8点 就计算第二天的8点的cal.add(Calendar.DAY_OF_YEAR, 1);} else {cal.add(Calendar.DAY_OF_YEAR, 0);}cal.set(Calendar.HOUR_OF_DAY, num);cal.set(Calendar.SECOND, 0);cal.set(Calendar.MINUTE, 0);cal.set(Calendar.MILLISECOND, 0);Long seconds = (cal.getTimeInMillis() - System.currentTimeMillis());return seconds.longValue();}}

就可以实现每天几点定时任务。

Android移动开发之【Android实战项目】实现每天定时提醒的功能相关推荐

  1. android studio开发工具介绍,Android应用开发之Android开发工具介绍、Android Studio配置...

    本文将带你了解Android应用开发之Android开发工具介绍.Android Studio配置,希望本文对大家学Android有所帮助. 2.1   Android Studio配置 2.1.1 ...

  2. android final参数,Android应用开发之Android Jetpack-Navigation 使用中参数的传递方法

    本文将带你了解Android应用开发之Android Jetpack-Navigation 使用中参数的传递方法,希望本文对大家学Android有所帮助. 由于使用了Navigation,导致Frag ...

  3. android中base64加密,Android应用开发之android自带Base64加密解密

    本文将带你了解Android应用开发之android自带Base64加密解密,希望本文对大家学Android有所帮助. android项目引用不到以下两个java类 import sun.misc.B ...

  4. 镜像处理坐标 android,Android应用开发之Android重写ImageView实现图片镜像效果的代码教程...

    本文将带你了解Android应用开发之Android重写ImageView实现图片镜像效果的代码教程,希望本文对大家学Android有所帮助. 前两天朋友问我一个问题,如何实现从手机系统相册加载一张图 ...

  5. Android关掉多个activity,Android应用开发之Android Activity栈管理 制定关闭某一个Activity,关闭所有Activit...

    本文将带你了解Android应用开发之Android Activity栈管理  制定关闭某一个Activity,关闭所有Activit,希望本文对大家学Android有所帮助. 系统Api :打开新的 ...

  6. android图片保存形式,Android应用开发之Android ScrollView截图和图片保存到相册的方式...

    本文将带你了解Android应用开发之Android ScrollView截图和图片保存到相册的方式,希望本文对大家学Android有所帮助. 1.1首先来看你一种截取屏幕,这种代码有缺陷,只能截取一 ...

  7. android 开发art,Android应用开发之Android 系统启动原理(art 虚拟机)

    本文将带你了解Android应用开发之Android 系统启动原理(art 虚拟机),希望本文对大家学Android有所帮助. Android   系统启动原理(art 虚拟机) 一.虚拟机的启动 A ...

  8. android 电量详情,Android应用开发之Android 8.0 电池-)耗电详情获取方法

    本文将带你了解Android应用开发之Android 8.0 电池-)耗电详情获取方法,希望本文对大家学Android有所帮助. Android 8.0 电池-)耗电详情获取方法 主要介绍UI位置和基 ...

  9. android 接口实现方法,Android应用开发之Android 请求网络接口实现方法

    本文将带你了解Android应用开发之Android 请求网络接口实现方法,希望本文对大家学Android有所帮助. public   class Fragment01 extends Fragmen ...

  10. android显示通知图标大全,Android应用开发之android 桌面APP应用图标显示通知消息的数量显示与去除...

    本文将带你了解Android应用开发之android 桌面APP应用图标显示通知消息的数量显示与去除,希望本文对大家学Android有所帮助. android   桌面APP应用图标显示通知消息的数量 ...

最新文章

  1. 服务端异步IO配合协程浅析
  2. CondLaneNet:基于条件卷积的自顶向下车道检测框架
  3. selenium--字符串/整型问题Can't convert 'int' object to str implicitly提示解决方法
  4. 解决nginx 504 Gateway Time-out的一些方法
  5. Visual Studio怎么使用中文帮助文档
  6. php与ajax交互中文乱码(字符串转化)
  7. k8s源码分析 pdf_Spark Kubernetes 的源码分析系列 - features
  8. 计算机学业水平测试网,学业水平测试
  9. EasyRecovery---U盘数据恢复技巧
  10. mac u盘装linux系统教程,mac上制作linux系统U盘安装盘
  11. 完整版28K易支付系统源码+第四方Oreo支付源码
  12. WPF中的对话框 Dialog
  13. 程序语言翻译: 2.1在以阶段划分的编译器中,贯穿于编译器工作始终的是( )。2.2 对高级语言程序进行翻译时,源程序中的变量不可能映射到( )
  14. 【金融项目】尚融宝项目(十六)
  15. python io模块
  16. 手把手教你用 tornado 设计 web 项目
  17. 路由器交换机:配置命令
  18. uc浏览器网盘无限收藏_你很有可能不知道谷歌浏览器上面隐藏着这个小秘密!...
  19. 四六级备考 01 两会
  20. 终于在12306上订到火车票了

热门文章

  1. PaddleHub 视频人脸检测
  2. pytorch判断NaN
  3. module 'paddle.fluid' has no attribute 'data'
  4. gentoo emerge安装软件
  5. python opencv 旋转图片
  6. ffmpeg3.4 yuv编码为h264
  7. python 调用C++,传递int,char,char*,数组和多维数组
  8. caffe 报错 Check failed: error == cudaSuccess (77 vs. 0) an illegal memory access was encounteredcaffe
  9. findcontours 崩溃
  10. 位图 查找重复 排序 存数据