这里是我正在使用的代码以及在该状态下崩溃的代码(System.Net.Http名称空间):
private static async Task<string> HttpGet(string uri)
{
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Add("User-Agent", BotUserAgent);
var response = await client.GetAsync(uri);
return await response.Content.ReadAsStringAsync();
}
}
或者我使用了web.http命名空间的客户端,结果相同:
using(var client = new Windows.Web.Http.HttpClient())
{
client.DefaultRequestHeaders.Add("User-Agent", BotUserAgent);
var response = await client.GetAsync(new Uri(uri));
return await response.Content.ReadAsStringAsync();
}
这是我得到的错误(添加异常记录器后):
发送请求时发生错误。
有什么想法吗?
答案 0 :(得分:0)
问题是,当电池安全状态进入时,您的WinRT设备会将您的应用程序发送到后台。
每当用户将您的应用移动到后台时,您的应用都可以暂停或冻结,从根本上阻止任何下载死机。在某些情况下,应用程序可能会 甚至被终止,迫使你创建一个新的类实例,试图再次开始下载。幸运的是,WinRT提供了一种使用后台任务处理此特定方案的方法。
这是http://www.informit.com/articles/article.aspx?p=2229233&seqNum=6
的引用在这个网站上,您可以轻松地学习如何在Windows.Networking.BackgroundTransfer-Namespace中使用BackgroundTransfers。