我的应用正在进行HTTP连接。 如果使用Home Button(快速应用切换)切换到主屏幕,我的应用正在进行的连接被取消。
为什么?
是否有某种方式来避免呢?
我的应用正在进行HTTP连接。 如果使用Home Button(快速应用切换)切换到主屏幕,我的应用正在进行的连接被取消。
为什么?
是否有某种方式来避免呢?
不幸的是(或取决于你如何看待它,幸运的是,因为这样可以节省电池寿命),当一个应用程序是由于家庭按下按钮停用,大多数HTTP连接将被取消,而大多数操作暂停。这从this blog post代码会检查是否或不是HttpWebRequest的是由应用程序停用(墓碑)取消:
try
{
HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(MyResultAsync);
}
catch (WebException e)
{
if (e.Status == WebExceptionStatus.RequestCanceled)
MessageBox.Show("Looks like your request was interrupted by tombstoning");
else
{
using (HttpWebResponse response = (HttpWebResponse)e.Response)
{
MessageBox.Show("I got an http error of: " + response.StatusCode.ToString());
}
}
}
如果你想下载/上传文件的背景,你可以看看this article。对于任何更复杂的网络操作类型,您都不走运。
没有,有没有办法避免这种情况。当您快速应用切换您的所有网络请求将被取消。
如果它被取消了,你就可以在返回到应用程序时,你得到的异常检测此:
catch (WebException webEx)
{
if (webEx.Status == WebExceptionStatus.RequestCanceled)
{
// Retry request
}
else
{
// Handle other exception
}
}
如果您的应用程序具有取消请求(手动)其他的方法,那么你就还需要考虑这些。
你是如何进行连接的?当应用程序停用时,大多数类如HttpWebRequest将被取消。 – msbg 2013-03-24 01:44:43
我正在使用HttpWebRequest。有没有办法避免这种情况? – Richard 2013-03-24 14:02:35