我的應用正在進行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