每天推送通知
Posted
技术标签:
【中文标题】每天推送通知【英文标题】:Push notification every day 【发布时间】:2018-07-16 06:32:05 【问题描述】:我怎样才能创建一个每天在特定时间推送通知的服务?我在谷歌上尝试了很多方法,但效果不佳。有人知道这样做的好方法吗?有人说最好使用 AlarmManager,而另一些人则说它应该是 JobScheduler,因为 AlarmManager 已被弃用。 谁有好的参考资料?
【问题讨论】:
使用警报管理器在每天的准确时间触发通知。 【参考方案1】:如果您想在准确的时间执行某些操作,那么您应该使用 AlarmManager。
基于documentation:
标准 AlarmManager 警报(包括 setExact() 和 setWindow()) 推迟到下一个维护时段。
如果您需要设置在打瞌睡时触发的警报,请使用 setAndAllowWhileIdle() 或 setExactAndAllowWhileIdle()。 使用 setAlarmClock() 设置的警报继续正常触发 - 系统在这些警报触发前不久退出打盹。
您不能使用JobScheduler
在特定时间触发某些事情。作业的执行受操作系统控制。在打盹模式下作业将被推迟,因此不可能在准确的时间触发。
当您想确保必须在特定时间间隔内触发作业但在确切时间执行并不重要时,请使用 JobScheduler
。
【讨论】:
【参考方案2】:为推送通知设置后端服务器。当 Api 向 FCM 请求带有设备 ID 的推送请求时,设备将收到通知。对于从后端自动推送,请使用后端的 cron。后台进程在后端 api 中运行,并会在某个时间间隔内命中 FCM,设备将收到 PUSH 通知。
【讨论】:
以上是关于每天推送通知的主要内容,如果未能解决你的问题,请参考以下文章