基于数据库数据实现预约提醒功能的问题与方案
预约事项通知提醒的实现与问题解决
需求
- 为数据库中存储的预约事项生成提醒,每个预约带有
notificationTime属性,用于指定通知的展示时间
当前实现
- 生产环境方案:设置每日运行1-2次的定时任务,拉取未来24小时内需要触发的通知并完成注册
- 测试阶段方案:使用继承
JobService的NotificationService,通过JobScheduler每15分钟调度一次任务
遇到的问题
- 仅在应用处于前台或后台存活状态时,能按每15分钟的频率正常收到通知
- 搭载Android 12的Xiaomi Redmi Note 9 Pro设备上,杀掉应用后完全无法接收通知;但Android 13的Pixel 5虚拟设备表现正常
临时修复
给应用开启自启动权限后,Xiaomi设备上杀掉应用也能恢复正常通知接收
最终解决方案
采用FCM配合服务器托管服务,由服务器每5分钟检查存储待展示通知的缓存,触发对应通知的推送
内容的提问来源于stack exchange,提问作者Nicoara
相关产品推荐
相关产品推荐

