在Doze模式下,维护窗口的持续时间是多久?

6
我想使用Jobscheduler api在有网络连接时安排一个任务,从推送消息中下载一堆图片。由于doze模式下操作系统忽略唤醒锁定,并且由于FCM消息最多只能唤醒设备10秒,因此维护窗口似乎是我从所有推送通知中下载图像的唯一方法。
这些图像每个最大为100KB,每次最多50张。所以总共最多使用5MB的数据。
我想知道doze模式下的窗口是否足够宽,可以允许这些下载。
我在谷歌上搜索过,并找到了一些松散的数据细节,声称需要5-10分钟。
请问有人能指导我正确的信息吗?
谢谢和问候。

1
我不相信这是有记录的,可能是为了让谷歌可以调整行为。在我的实验中,它似乎没有长达10分钟那么长。 - CommonsWare
确实..我也很担心这个问题。我的想法是收集一系列带有图像集的推送消息并保存它们。然后在以后的某个时间显示所有这些消息。现在,FCM确实会唤醒并部分授权我的设备访问网络,但我不知道是否足够。这让我面临Jobscheduler和上述困境。你能建议我其他方法来处理这个Doze垃圾并仍然下载我的5 MB吗 :-/ - Kushan
我建议你想出一个不涉及5MB后台数据的不同计划。在后台下载低分辨率图像(比如每个10KB),用作应用程序UI被带到前台时的占位符。在此时,对于用户需要的图像,下载高分辨率图像。这类似于Google Maps处理缩放事件的方式:使用临时的图像,然后在可以获取更好的图像时替换它们。 - CommonsWare
这些是要在通知中显示的图像。不幸的是,这些不是应用程序图像。我正在制作一个营销平台,人们可以使用发布/订阅模型发送推送消息。我将向人们收取这些图像投递的费用。我可以将图像大小缩小到最大50kb并具有正常分辨率。如果一个用户订阅了多个内容,他/她可以选择单独查看每个内容或将它们作为一个整体查看。这个问题是最大50个订阅和单独设置的极端情况。 - Kushan
让我们在聊天中继续这个讨论 - Kushan
显示剩余3条评论
1个回答

0

10分钟

现在似乎已经有文档记录了!

‡ 如果网络访问受限,则应用程序被授予在指定间隔内使用网络的10分钟窗口。

但是,

您不能指望所有Android设备都是相同的。当然,OEM可以更改这个设置。因此答案是几分钟,因为没有OEM会不明智地将其设置为只有一两分钟。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接