我如何创建每天在特定时间推送通知的服务?我一直在尝试在Google上使用多种方法,但它们效果不佳。有人知道这样做的好方法吗?有人说使用AlarmManager更好,而其他人则说应该使用JobScheduler,因为AlarmManager已过时。 有人有很好的参考吗?
答案 0 :(得分:0)
如果您希望在准确的时间执行某些操作,则应使用AlarmManager。
标准AlarmManager警报(包括setExact()和setWindow()) 推迟到下一个维护窗口。
- 如果您需要设置在打ze睡时触发的警报,请使用 setAndAllowWhileIdle ()或 setExactAndAllowWhileIdle ()。
- 通过setAlarmClock()设置的警报继续正常触发-在这些警报触发之前,系统立即退出Doze。
您无法使用JobScheduler
在特定时间触发某些操作。作业的执行受OS控制。在打ze模式下将推迟作业,因此无法在准确的时间触发。
要确保必须在特定时间间隔内触发作业,请使用JobScheduler
,但是在精确时间执行并不重要。
答案 1 :(得分:0)
设置用于推送通知的后端服务器。当Api向FCM发送命中请求以设备ID发送推请求时,设备将收到通知。对于从后端自动推送,请使用来自后端的cron。后台进程在后端api中运行,它将在一定时间间隔内到达FCM,并且设备将收到PUSH通知。