首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

android 在cmwap等代理接入点上的一些经验分享

2012-08-22 
android 在cmwap等代理接入点下的一些经验分享1.某些Rom在wifi环境下取代理依然会取到cmwap设置的代理值,

android 在cmwap等代理接入点下的一些经验分享

1.某些Rom在wifi环境下取代理依然会取到cmwap设置的代理值,所以取代理时判断一下手机网络环境,如果是gprs上网,则不取代理。
ConnectivityManager connectivityManager = (ConnectivityManager) context
??? ??? ??? ??? ??? .getSystemService(Context.CONNECTIVITY_SERVICE);
??? ??? ??? NetworkInfo activeNetworkInfo = connectivityManager
??? ??? ??? ??? ??? .getActiveNetworkInfo();
??? ??? ??? if (activeNetworkInfo != null) {
??? ??? ??? ??? int type = activeNetworkInfo.getType();

??? ??? ??? ??? // TODO 防止wifi下读取移动的代理
??? ??? ??? ??? if (type == ConnectivityManager.TYPE_MOBILE) {
????????????????????? //取代理
?????????????????????? }else{
????????????????? //不取代理
??????????????? }
????????????? }

2. 某些rom的webkit在cmwap下,webkit连接不上或是时断时连,需要在onResume()添加 WebView.enablePlatformNotifications();,onStop添加 WebView.disablePlatformNotifications();。但是此时如果你需要刚进入这个activity就load页面,第一次进入时load的第一个页面是load不出来的,会停留很久并且不出错误页面,不调用WebViewClient.onReceivedError。个人试过setHttpAuthUsernamePassword也不好使。
个人解决方案:

??? mWebPage.post(new Runnable(){
??? ??? ??? @Override
??? ??? ??? public void run() {
??? ??? ??? ??? mWebPage.loadUrl(url);
??? ??? ??? ???
??? ??? ??? }
??? ??? ???
??? ??? });

此时第一此load页面会很快调用WebViewClient.onReceivedError,你再在WebViewClient.onReceivedError里面设置标志,重新载入第一个页面即可。

热点排行