android是否有检查推送通知的时间周期?
Does android have a time cycle for checking push notifications?
我正在调查为什么我的应用程序有时会延迟接收推送通知以及导致这种情况的原因,我一直在三个不同的设备上使用我的应用程序(使用 xamarin 构建)进行一些测试 android 7 、9 和 10,使用 FCM 发送通知。
我注意到这些行为:
- 如果设备屏幕打开,android 立即收到推送通知;
- 如果设备屏幕最近关闭(您在 phone 几分钟前使用),android 也会立即收到推送通知;
- 如果设备长时间处于非活动状态,android 可以延迟几分钟(直到 15 ~ 20 分钟)来显示推送通知;
我的结论是 android 似乎有时间周期来检查通知。当您关闭屏幕时,设备似乎会在几分钟后进入 "stand by" 模式。如果您在此期间发送通知,您会立即收到通知,因为 android 尚未激活。但是,如果您在设备处于此 "stand by" 模式时发送通知,它只会在下一个周期显示通知,这可能会导致延迟。
确认一下可以吗?
此外,我还想说在 firebase 端和应用程序端将通知 importance/priority 配置为高,并没有改变这种行为。这可能与 FCM 服务相关,还是真正的 android 行为?
很抱歉问了这么长的问题,这让我困扰了好几天。
正如我们在 Android's Doze Mode 中看到的那样,我的问题中描述的行为正是 android 所做的!但是我们可以通过使用高优先级通知来解决这个问题,在我的例子中,我通过将这些参数添加到 FCM SDK 来修复它:
'android'=>['priority'=>'high'],
'apns'=>['headers'=>['apns-priority'=>'10']],
'webpush'=>['headers'=>['Urgency'=>'high']]
阅读更多相关信息
我正在调查为什么我的应用程序有时会延迟接收推送通知以及导致这种情况的原因,我一直在三个不同的设备上使用我的应用程序(使用 xamarin 构建)进行一些测试 android 7 、9 和 10,使用 FCM 发送通知。
我注意到这些行为:
- 如果设备屏幕打开,android 立即收到推送通知;
- 如果设备屏幕最近关闭(您在 phone 几分钟前使用),android 也会立即收到推送通知;
- 如果设备长时间处于非活动状态,android 可以延迟几分钟(直到 15 ~ 20 分钟)来显示推送通知;
我的结论是 android 似乎有时间周期来检查通知。当您关闭屏幕时,设备似乎会在几分钟后进入 "stand by" 模式。如果您在此期间发送通知,您会立即收到通知,因为 android 尚未激活。但是,如果您在设备处于此 "stand by" 模式时发送通知,它只会在下一个周期显示通知,这可能会导致延迟。
确认一下可以吗?
此外,我还想说在 firebase 端和应用程序端将通知 importance/priority 配置为高,并没有改变这种行为。这可能与 FCM 服务相关,还是真正的 android 行为?
很抱歉问了这么长的问题,这让我困扰了好几天。
正如我们在 Android's Doze Mode 中看到的那样,我的问题中描述的行为正是 android 所做的!但是我们可以通过使用高优先级通知来解决这个问题,在我的例子中,我通过将这些参数添加到 FCM SDK 来修复它:
'android'=>['priority'=>'high'],
'apns'=>['headers'=>['apns-priority'=>'10']],
'webpush'=>['headers'=>['Urgency'=>'high']]
阅读更多相关信息