Android 当接收到FCM高优先级消息时,设备将保持清醒多久?

Android 当接收到FCM高优先级消息时,设备将保持清醒多久?,android,firebase,firebase-cloud-messaging,android-doze,Android,Firebase,Firebase Cloud Messaging,Android Doze,我在Firebase文档中读到,如果设备接收到来自FCM的高优先级消息,将使其脱离睡眠状态,并且将向应用服务器打开网络连接。我已经测试过这种行为,我知道它确实能将设备从睡梦中唤醒 我的用例是这样的,我需要使用推送消息的数据标记中的set键下载图像。将有多个这样的推送通知,我将保存在数据库中的所有这些消息 比如说十分钟后,通知实际上会被触发到用户的屏幕上,以避免用户在立即打开网络连接时收到大量其他通知 我的问题主要是: 设备的唤醒时间是否足够长,以便我下载图像并将其保存到db(图像大小最大为100

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

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

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

我的问题主要是:

  • 设备的唤醒时间是否足够长,以便我下载图像并将其保存到db(图像大小最大为100kb)

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


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


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

    如果不完全是十,那也没关系,至少是十。我对jobscheduler的担忧仍然是一样的。假设设备正在打瞌睡,并且维护窗口到达,从而导致我的工作得到安排。现在我需要下载多长时间?假设有五十张图片。。它们会在该窗口内下载吗?窗户到底有多长?不,绝对不会。如果是50张图片,则需要多个维护窗口才能完成下载。但从好的方面来看,用户并没有完全使用该设备或您的应用程序。那么,这有什么关系吗?不幸的是,对我来说的确如此:(我向发送这些图片的人收费。lol。对我来说,这些图片的交付和显示是非常重要的。糟糕的是,我必须找到一个替代方案。我甚至可能不得不使用jobinfo,因为它是空闲到错误的