设备收到FCM高优先级消息后会保持清醒状态多长时间?

时间:2017-02-16 11:21:11

标签: android firebase firebase-cloud-messaging android-doze

我在Firebase文档中读到,如果设备从FCM收到高优先级消息并且网络连接将向应用服务器打开,则设备将退出睡眠状态。我测试了这种行为,我知道它确实从打瞌睡中唤醒了一个设备。

我的用例是这样的,我需要使用推送消息的数据标签中的set键下载图像。将有多个这样的推送通知,我将在数据库中保存所有这些消息。

在十分钟之后,通知实际上将被触发到用户的屏幕上,以避免用户在立即打开网络连接时收到的大量其他通知。

我的问题基本上是:

  1. 设备是否清醒时间足以让我下载图像并将其保存到数据库(图像大小最大为100kb)?

  2. 或者我应该使用JobScheduler API将下载时间推迟到以后确保网络连接?

1 个答案:

答案 0 :(得分:2)

是的,您应该推迟下载,但这取决于您应用的性质。文档说高优先级消息为应用程序提供临时访问权限,因此无法保证您的图像下载实际上会在该窗口中完成。

您的应用消息是否对时间敏感(我的意思是如果用户在10分钟后看到它们会崩溃)?如果没有,那么你应该完全按照自己的建议。否则你可能会启动前台服务,这可能会阻止设备进入打盹模式(请注意,您的应用可能会消耗大量电池,最终这可能会给用户带来负面印象)。