当前位置: 首页 > news >正文

Android自定义闹钟

google推荐方式3种:

一、AlarmManager

setRepeating() 重复闹钟。1、Android 4.4(API 级别 19)开始,所有重复闹钟都是不精确的,延时2分钟左右。2、闹钟触发的待定 Intent。当您设置使用同一待定 Intent 的第二个闹钟时,它会替换原始闹钟。3、当设备在低电耗模式下处于空闲状态时,不会触发闹钟。所有已设置的闹钟都会推迟,直到设备退出低电耗模式。

setInexactRepeating() 重复闹钟,同setRepeating()。特点:Android 会同步来自多个应用的重复闹钟,并同时触发它们。这可以减少系统必须唤醒设备的总次数,从而减少耗电量。

 setAndAllowWhileIdle() 或 setExactAndAllowWhileIdle() 即使设备处于空闲状态您的工作也会完成

注意事项:

1、如需取消 PendingIntent,请将 FLAG_NO_CREATE 传递到 PendingIntent.getService(),以获取该 Intent 的实例(如果存在),然后将该 Intent 传递到 AlarmManager.cancel()

2、默认情况下,当设备关机时,所有闹钟都会被取消。为了防止出现这种情况,您可以将应用设计为在用户重启设备时自动重新启动重复闹钟。

配置清单

    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<receiver android:name=".SampleBootReceiver"android:enabled="false"><intent-filter><action android:name="android.intent.action.BOOT_COMPLETED"></action></intent-filter></receiver>

3、在 Android 6.0(API 级别 23)中引入了低电耗模式和应用待机模式。低电耗模式下使用 setAndAllowWhileIdle() 或 setExactAndAllowWhileIdle() 让某个闹钟在低电耗模式下也能触发。

应用将在处于空闲状态时(即用户在一段时间内未使用应用,并且应用没有前台进程时)进入应用待机模式。当应用处于应用待机模式时,闹钟会像设备处于低电耗模式一样被延迟。当应用不再处于空闲状态或者当设备接通电源时,该限制便会解除。

二、使用FCM(Firebase Cloud Messaging)

使用跨平台定点消息推送实现消息提醒,向单台设备发送消息

官方文档:https://firebase.google.com/docs/cloud-messaging/?hl=zh-cn

三、WorkManager 

凡是不直接与用户互动相关且日后可随时运行的任务,都可以延期执行。异步任务即使在应用退出或设备重启后仍能正常运行

http://www.lryc.cn/news/44316.html

相关文章:

  • 第02章_MySQL环境搭建
  • java使用线程池和Future接口实现异步的实例
  • cocosCreator 事件系统
  • 刷题_20:字符串反转 and 公共子串计算
  • 如何在 Linux 命令行中比较两个目录,我教你五个命令!
  • 多元算力如何满足万千本土化场景需求,解析第四代至强核心加速器设计
  • SPI主模式切换为从模式
  • IMX6ULL学习笔记(21)——MMDC接口使用(DDR3测试)
  • 机器学习——无监督学习
  • python+opencv生成较真实的车牌号码图片
  • 3.26周报
  • 从0开始学python -69
  • HashMap中HashCode的实现原理
  • Redis —Set、ZSet介绍和应用场景
  • 【产品人卫朋】内容运营:文章点击量少的可怜,该怎么做?
  • 【K8S系列】深入解析无状态服务
  • Node基础--命令窗口
  • 一些有趣的项目
  • 教你精通JavaSE语法之第六章、数组的使用
  • 基于51单片机AT89C51的小型音乐喷泉控制系统设计
  • 【Nacos】Nacos原理详解(注册中心,配置中心)
  • 蓝桥杯刷题冲刺 | 倒计时11天
  • 【新】(2023Q2模拟题JAVA)华为OD机试 - 时间格式化
  • MySQL函数
  • 【Linux系统】开发工具(下) {调试器gdb,自动化构建工具make/Makefile,多文件编译,代码管理平台git}
  • 线性代数——行列式
  • Spring注解-Spring-boot-SpingAOP
  • 使用Shell传参解决DataPhin中PySpark不支持中文的问题
  • 【CDH】cloudera manger 如何开启Debug 日志调试模式
  • SQL Server 用户授权与回收