C# 后台文件传输问题
我在WP7中使用后台文件传输时遇到了这个问题。当我的应用程序正在运行时,它可以完美地工作,但只要我单击Windows按钮,它就会停止(并在我再次激活应用程序时恢复)。后台文件传输的目的不是在后台运行,即使应用程序已停用?它是否必须在一个单独的类中(某种后台代理类,与主项目分开?)真的令人沮丧,当我在做这里的教程所说的一切时: 我是否需要做一些“特殊”的事情来确保它在后台运行,或者某些方法,可能是我自己创建的(获取url等),在停用时无法访问?我是否可以在停用时不添加到队列 非常感谢您抽出时间:) 编辑:一点调试告诉我队列中的文件实际上正在下载。它会完成,但在我重新激活应用程序之前,它不会获取下一个。这样做时,我可以不使用自己的方法、变量等吗?也许我有一个内部队列,比如说,20个项目。当这变为零时,我如何填充下载队列(最多5个) EDIT2:在Microsoft的示例中,他们说您可以稍后添加到队列:C# 后台文件传输问题,c#,windows-phone-7,windows-phone-7.1,file-transfer,C#,Windows Phone 7,Windows Phone 7.1,File Transfer,我在WP7中使用后台文件传输时遇到了这个问题。当我的应用程序正在运行时,它可以完美地工作,但只要我单击Windows按钮,它就会停止(并在我再次激活应用程序时恢复)。后台文件传输的目的不是在后台运行,即使应用程序已停用?它是否必须在一个单独的类中(某种后台代理类,与主项目分开?)真的令人沮丧,当我在做这里的教程所说的一切时: 我是否需要做一些“特殊”的事情来确保它在后台运行,或者某些方法,可能是我自己创建的(获取url等),在停用时无法访问?我是否可以在停用时不添加到队列 非常感谢您抽出时间:)
// Check to see if the maximum number of requests per app has been exceeded.
if (BackgroundTransferService.Requests.Count() >= 5)
{
// Note: Instead of showing a message to the user, you could store the
// requested file URI in isolated storage and add it to the queue later.
MessageBox.Show("The maximum number of background file transfer requests for this application has been exceeded. ");
return;
}
但它并没有说我们是否可以在后台做这件事。因为这是关于后台文件传输的,他们应该提到它,否则我们应该假设它可以在后台完成,这似乎不是事实。但我们不知道这一点。有谁能100%确认这一点吗?我也对此进行了研究,在最多5次排队下载完成后,不可能(根据我的研究)填充队列。我曾考虑使用后台代理,但后台代理无法使用BackgroundTransferRequest.Add,这意味着排队等待更多下载的唯一方法是在应用程序运行时(请参阅)
我唯一能想到的就是使用后台代理发送toast通知,让用户知道下载已经完成,他们应该启动应用程序来排队等待接下来的五次下载。这不太理想。谢谢你的回复。基本上我也发现了这一点,但这还远远不够。我想一定有其他方法可以做到这一点,有没有其他人研究过这一点,也许找到了解决办法?