android是否有检查推送通知的时间周期?

android是否有检查推送通知的时间周期?,android,firebase,push-notification,firebase-cloud-messaging,Android,Firebase,Push Notification,Firebase Cloud Messaging,我正在调查为什么有时我的应用程序会延迟接收推送通知,原因是,我一直在用我的应用程序(用xamarin构建)在安卓7、9和10的三种不同设备上进行测试,使用它们发送通知 我注意到这些行为: 如果设备屏幕打开,android会即时收到推送通知 如果设备屏幕最近关闭(您几分钟前正在使用手机),android也会立即收到推送通知 如果设备长时间处于非活动状态,android可以延迟几分钟(直到15~20分钟)来显示推送通知 我的结论是,android似乎有周期性的时间来检查通知。当您关闭屏幕时,设备

我正在调查为什么有时我的应用程序会延迟接收推送通知,原因是,我一直在用我的应用程序(用xamarin构建)在安卓7、9和10的三种不同设备上进行测试,使用它们发送通知

我注意到这些行为:

  • 如果设备屏幕打开,android会即时收到推送通知
  • 如果设备屏幕最近关闭(您几分钟前正在使用手机),android也会立即收到推送通知
  • 如果设备长时间处于非活动状态,android可以延迟几分钟(直到15~20分钟)来显示推送通知
我的结论是,android似乎有周期性的时间来检查通知。当您关闭屏幕时,设备似乎在几分钟后进入“待机”模式。如果您在这段时间发送通知,您将立即得到通知,因为Android还处于活动状态。但是,如果您在设备处于“待机”模式时发送通知,它将仅在下一个周期显示通知,那么是什么导致延迟

可以肯定吗

此外,我还想说,在firebase端和应用程序端将通知重要性/优先级配置为高,并没有改变这种行为。这可能与FCM服务有关,还是这是真正的android行为

很抱歉问了这么长的问题,这让我费劲了好几天。

正如我们在上所看到的,我的问题中描述的行为正是android所做的!但我们可以通过使用高优先级通知来解决这个问题,在我的例子中,我通过向FCM SDK添加以下参数来修复它:

'android'=>['priority'=>'high'],
'apns'=>['headers'=>['apns-priority'=>'10']],
'webpush'=>['headers'=>['Urgency'=>'high']]


你可以在

上阅读更多关于这方面的内容。你读过吗?@Morrisonchange no。。。我将开始这样做。谢谢。签出“高优先级”通知-“高优先级。FCM尝试立即发送高优先级消息,允许FCM服务在必要时唤醒休眠设备并运行一些有限的处理”-@MarkKeen我已经使用高优先级,可能发生的是我没有点击所有通知,正如fcm文档所说,由于是出于测试目的而对它们进行了描述,这样做可能会导致优先级降低。“高优先级消息通常会导致用户与应用程序或其通知交互。如果fcm检测到一种模式,而它们没有,则您的消息可能会被取消优先级。”-您应该单击高优先级通知,丢弃它们正是可能导致取消优先级的原因(通知是垃圾邮件/不需要的,因此没有理由快速发送它们)。