您的位置:首页 > 理论基础 > 计算机网络

android判断网络是否连接一些注意事项(有代码)

2012-08-28 09:49 801 查看
以下代码就是判断网络连接的  


public  boolean isNetworkAvailable(Context context) {

        ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

        if (connectivity == null) {

             //TODO

        } else {

            NetworkInfo[] info = connectivity.getAllNetworkInfo();

            if (info != null) {

                for (int i = 0; i < info.length; i++) {

                    if (info[i].getState() == NetworkInfo.State.CONNECTED) {

                        return true;

                    }

                }

            }

        }

        return false;

    }

这几天做断点续传时,使用到以上代码,发现一些细节问题记录下:

1.通过以上代码判断网络连接之后,最好是让线程sleep 2秒钟,否则马上执行httpClient.execute(request)(即解析request时),可能出现连接主机被拒绝(会报异常)

2.当网络类型为mobile 2G或者3G,断开网络的瞬间,通过以上代码判断网络连接仍然是connected,但是网络输入流已经关闭,再读数据返回-1.wifi没有出现此问题

如有不同看法的筒子们,欢迎留言,互相学习!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息