FCM-OnDeviceNotificationScheduler本地通知调度方案
FCM 的本地通知调度方案里,FCM-OnDeviceNotificationScheduler这个项目还挺实用的。用FCM
接消息,用AlarmManager
定时,用WorkManager
兜底跑任务,三件套结合得挺顺。想学怎么把远程推送跟本地定时串起来的,看看它就对了。
用的是Kotlin写的,代码简洁,空安全和扩展函数这些优势都发挥出来了。要是你之前只用BroadcastReceiver
或者自己手搓Handler
写定时,不如试试这个方案,稳妥还兼容新版本。
AlarmManager主要负责“什么时候干活”,适合精确时间点。像设置明天 8 点提醒用户打卡,就可以交给它搞定。但它有个小毛病:系统杀进程。
这时候WorkManager就顶上了。它有持久性,设备重启后也能照常执行任务,而且还能判断当前设备状态,比如有没有网、是不是在充电,灵活度高,可靠性强。
配合使用后,你可以先用FCM
触发服务端的指令,比如“在某时间点通知用户有新活动”。客户端接到消息后,用AlarmManager
设置任务时间,到点再让WorkManager
去执行真正的通知逻辑。
想试试可以直接拉项目代码看看:结构清晰,MainActivity
负责初始化,FirebaseMessagingService
消息,Worker
执行任务。基本照着抄下来都能跑。
如果你对后台服务还不太熟,可以顺带看看这篇:Android 后台服务入门,也挺有的。
,FCM + AlarmManager + WorkManager这种组合比较推荐,适合做带推送通知的定时提醒。适合课程打卡、活动开始提醒、用户唤醒这些场景。如果你也在做这类功能,值得研究一下。
FCM-OnDeviceNotificationScheduler-master.zip
预估大小:55个文件
FCM-OnDeviceNotificationScheduler-master
文件夹
gradlew.bat
2KB
gradlew
5KB
gradle.properties
1KB
.github
文件夹
FUNDING.yml
575B
output
文件夹
Demo.mp4
1018KB
Demo.gif
1.6MB
LICENSE
1KB
...
2.29MB
文件大小:
评论区