2017-02-16 75 views
0

我在Firebase文档中看到,如果设备收到来自FCM的高优先级消息,并且网络连接将向应用程序服务器打开,则设备将从睡眠中退出。我已经测试过这种行为,我知道它确实唤醒了一个设备。设备在收到FCM高优先级消息时会保持清醒状态多久?

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

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

我的问题本质上是:

  1. 将在设备清醒足够长的时间来下载图像并将其保存到数据库(图像尺寸为最大100KB)?

  2. 或者我应该使用JobScheduler API推迟下载,以确保网络连接?

回答

1

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

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

+0

这很好,如果它不完全是十,那更像是至少十。我担心jobcheduler仍然是一样的。假设设备处于打盹状态,并且维护窗口到达,从而导致我的工作按计划进行。现在我需要多长时间下载所有图像?假设有五十张图片,他们会在该窗口下载吗?窗户有多长时间? – Kushan

+0

不,他们绝对不会。如果有50张图像,则需要多个维护窗口才能完成下载。但有利的是,用户并未完全使用该设备或应用程序。那么它有什么关系 – Dibzmania

+0

雅不幸的是,它确实:(我负责人发送这些图像哈哈,这对我来说是非常重要的,这些得到了交付和显示。甚至必须使用jobinfo闲置为假 – Kushan

相关问题