WP7 - 快速应用程序切换和Internet连接

时间:2013-03-23 15:57:10

标签: windows-phone-7 internet-connection fast-app-switching

示例:

我的应用程序正在进行HTTP连接。 如果我使用主页按钮(快速应用程序切换)切换到主屏幕,我的应用程序正在执行的连接将被取消。

为什么?

有没有办法避免它?

2 个答案:

答案 0 :(得分:1)

不幸的是(或者取决于你如何看待它,幸运的是,因为它可以节省电池寿命),当按下主页按钮停用应用程序时,大多数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。对于任何更复杂类型的网络操作,你都不走运。

答案 1 :(得分:0)

不,没有办法避免这种情况。当您快速应用程序切换时,您的所有Web请求都将被取消。

如果它被取消,你将能够在返回应用程序时遇到的异常中检测到这一点:

catch (WebException webEx)
{
    if (webEx.Status == WebExceptionStatus.RequestCanceled)
    {
        // Retry request
    }
    else
    {
        // Handle other exception 
    }
}

如果您的应用程序有其他(手动)取消请求的方式,那么您也需要考虑这些。