4

根据《后台任务简介》第 20 页,在网络资源限制下,后台任务每 15 分钟可以下载 4.69 MB。

这是否意味着,在 Windows RT 中,如果我们在后台通过 IE10 Metro 下载 20MB 的文件,需要 40 多分钟?(否则我们必须把下载进度保持在前面)

此外,作为后台应用程序,您不得使用超过 0.002% 的 CPU。

在同一页上,他们争辩说:

网络使用可能会严重消耗设备电池,因此在后台任务执行期间也会受到限制。但是,如果设备使用交流电源运行,则后台任务不受网络限制。他们可以根据需要自由使用尽可能多的网络带宽(当然,受任何运营商特定带宽或使用限制的限制)。请注意,即使设备在交流电源上运行,后台任务的 CPU 使用率也始终受到资源限制。

由于这些原因,我们无法为 Windows RT 实现下载管理器?用户同意的情况下如何?

4

2 回答 2

1

据我从链接的文档中可以看出,您受限于后台任务中的数据吞吐量,这是基于用于为网络设备供电的能源量,而不是任何特定的数据值。4.69MB 只是 10Mbps 的一个例子,它比大多数标准住宅互联网连接慢。

此外,正如您链接的段落所述,如果设备连接到主电源,则没有任何限制,因此台式电脑和大多数笔记本电脑永远不会出现问题。没有迹象表明您可以要求用户绕过限制。

所以是的,您可以构建一个下载管理器,只要您知道用户在何处以及如何使用该应用程序并进行相应调整,它就应该可以正常工作。

于 2012-10-09T05:52:31.457 回答
1

有用于卸载系统后台管理下载的 API: 请参阅 Mike Taulty 的博客条目。后台模式下的 WinRT 应用程序还有其他严重的限制,通常不会在博客文章和论坛中讨论,例如您的后台任务在与您的应用程序不同的进程或线程单元中运行这一事实:在链接到上面的白皮书中,请参阅部分在后台任务主机可执行文件上. 它说除非您的后台任务是 PushNotificationTrigger 或 ControlChannelTrigger,否则您的任务是由 BackgroundTaskHost.exe 或 WWAHost.exe 运行的 inproc 服务器。即使在前两种“在同一个应用程序中”运行的情况下,它也位于单独的公寓中。这些都只能通过将数据编组到文件或 ApplicationData 存储中来与主应用程序共享数据。

我已经对 ControlChannelTrigger 进行了试验,发现了以下限制(如果您将它们挖掘出来,也会在文档中列出):

  • 在连接套接字之前,通道必须与套接字关联
  • 一个应用程序只能使用有限数量的 ControlChannel,即使指定了软件通道(在我的例子中是 6 个)
于 2012-10-24T19:49:17.083 回答