从WiFi连接切换到3g导致连接挂起?

从WiFi连接切换到3g导致连接挂起?,第1张

概述我有一个连接到Web服务的应用程序.只要我在应用程序的生命周期内忠于自己的连接类型,就可以使用WIFI或3G多次连接到Web服务,而不会出现任何问题.那就是如果我不从WIFI切换到3G.如果我从WIFI切换到3G,将无法再获得响应.我的连接一直在等待响应.我在下面尝试了4种情况.我只对第三种

我有一个连接到Web服务的应用程序.只要我在应用程序的生命周期内忠于自己的连接类型,就可以使用WIFI或3G多次连接到Web服务,而不会出现任何问题.那就是如果我不从WIFI切换到3G.如果我从WIFI切换到3G,将无法再获得响应.我的连接一直在等待响应.

我在下面尝试了4种情况.我只对第三种情况有疑问.可能是什么问题呢?

第一种情况:连接始终在WIFI上(确定)

>应用程序使用WIFI连接到Web服务.
>已成功收到响应.
>应用程序再次使用WIFI连接到Web服务.
>响应已成功接收.

第二种情况:连接始终在3G上(确定)

>应用程序使用WIFI连接到Web服务.
>已成功收到响应.
>应用程序再次使用WIFI连接到Web服务.
>响应已成功接收.

第三种情况:连接从WIFI切换到3G(无响应)

>应用程序使用WIFI连接到Web服务.
>已成功收到响应.
>连接已切换到3G. WIFI已禁用. 3G已启用.
>应用程序再次使用3G连接到Web服务.
>没有收到响应或错误.应用程序继续等待响应.在调用getResponseCode之前显示了最后一个日志.

第四种情况:连接从3G切换到WIFI(确定)

>应用程序使用3G连接到Web服务.
>已成功收到响应.
>连接已切换为WIFI. 3G已禁用. WIFI已启用.
>应用程序再次使用WIFI连接到Web服务.
>响应已成功接收.

我的猜测是默认情况下,httpURLConnection认为WIFI是比3G更好的连接类型.因此,当连接从WIFI切换到3G时,httpURLConnection拒绝确认3G并仍尝试使用WIFI进行连接.另一方面,由于WIFI是更好的连接类型,因此httpURLConnection允许从3G切换到WIFI.我对此正确吗?如果可以,如何允许从WIFI切换到3G?

下面是我的代码片段:(每次连接到Web服务时,我都会调用它.)

//open new connectionhttpsURLConnection = (httpURLConnection) ((new URL(url)).openConnection());httpsURLConnection.setDoinput(isDoinput);httpsURLConnection.setDoOutput(isDoOutput);try{    //supply parameters    OutputStreamWriter wr = new OutputStreamWriter(httpsURLConnection.getoutputStream());    wr.write(data);    wr.flush();    if(httpURLConnection != null)    {        if (httpsURLConnection.getResponseCode() == httpsURLConnection.http_OK) //connection hangs here        {            //some code        }        else        {            //some code        }    }}catch(Exception e){}

解决方法:

我不知道为什么,但是在代码上添加System.setProperty(“ http.keepAlive”,“ false”)可以解决问题.

根据AndroID开发者博客(androids-http-clients)的说法,httpURLConnection在Froyo之前存在一个错误,可以通过禁用连接池来解决,就像上面一样.但是,我使用的是Gingerbread,所以我不确定为什么httpURLConnection仍然在我的应用程序中行为异常.

致他人:如果您可以提供更多解释,请随时编辑我的帖子.

总结

以上是内存溢出为你收集整理的从WiFi连接切换到3g导致连接挂起?全部内容,希望文章能够帮你解决从WiFi连接切换到3g导致连接挂起?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1074029.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存