我如何知道OneDrive后台下载何时完成?

时间:2014-12-28 20:03:28

标签: windows-runtime windows-phone-8.1 onedrive

Microsoft提供的用于Windows Runtime应用程序后台下载的(小)示例代码:

try
{
    LiveDownloadOperation operation = await connectClient.CreateBackgroundDownloadAsync(filePath);
    var result = await operation.StartAsync();
    // Handle result.
}
catch
{
    // Handle errors.
}

我正在使用CreateBackgroundDownloadAsync的变体,您可以在其中指定StorageFile作为第二个参数,从而使下载的文件存储为StorageFile。

我如何知道下载完成的时间?结果似乎没有我可以检查的任何属性,似乎也没有任何被触发的事件。

文档非常缺乏: - (。

感谢。

2 个答案:

答案 0 :(得分:0)

通过仔细阅读API文档,显示你做了两件事:

  1. 首先,为BackgroundDownloadCompleted事件添加处理程序。如果在您的应用仍处于活动状态时下载完成,则会引发此问题
  2. 当您的应用被激活时,请通过GetCurrentBackgroundDownloadsAsync方法调用AttachAsync重新连接到您的应用终止时正在进行的任何操作。

答案 1 :(得分:0)

事实证明,我对整个异步/等待片段非常遗忘。

var result = await operation.StartAsync();

实际上将值放入结果中,下载已完成。同样,当应用程序终止时重新连接到正在进行的下载时 - 等待调用将在下载完成后完成。

我仍然认为Live SDK文档与其他MSDN文档相比非常差,Microsoft需要将一些工作投入其中。