【问题标题】:How long will the device stay awake when it receives a FCM high priority message?设备在收到 FCM 高优先级消息时会保持唤醒状态多长时间?
【发布时间】:2017-02-16 11:21:10
【问题描述】:

我在 Firebase 文档中读到,如果设备收到来自 FCM 的高优先级消息并且网络连接将打开到应用服务器,它将被带出睡眠状态。我已经测试过这种行为,我知道它确实可以将设备从打盹中唤醒。

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

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

我的问题本质上是:

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 如果不正好是 10 也没关系,它更像是至少 10。我对作业调度程序的担心仍然是一样的。假设设备处于打瞌睡状态并且维护窗口到来,从而导致我的工作得到安排。现在我需要多长时间才能下载所有图像?假设有 50 张图片……它们会在那个窗口中下载吗?窗口到底有多长?
    • 不,他们绝对不会。如果有 50 张图像,则需要多个维护窗口才能完成下载。但从好的方面来说,用户并没有完全使用设备或您的应用程序。有没有关系
    • 对我来说不幸的是,它确实如此 :( 我会向人们收取发送这些图像的费用,哈哈。这些图像的交付和展示对我来说非常重要。很糟糕,我必须找到替代方案。我'甚至可能不得不使用jobinfo is idle to false
    猜你喜欢
    • 2018-07-05
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-11
    • 2020-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多