android 网络可用性检测

所有需要访问网络的activity访问网络前检测网络是否可用,不可用Toast提示。 这是很多访问网络的地方都需要用到的,怎么把这一功能从各个activity统一出来,只写一次?

阅读 4.2k
2 个回答

写个静态的工具方法不久好了么?

public static boolean isNetworkAvalible(Context context) {

    // 获得网络状态管理器
    ConnectivityManager connectivityManager = (ConnectivityManager) context
            .getSystemService(Context.CONNECTIVITY_SERVICE);

    if (connectivityManager == null) {
        return false;
    } else {
        // 建立网络数组
        NetworkInfo[] net_info = connectivityManager.getAllNetworkInfo();

        if (net_info != null) {
            for (int i = 0; i < net_info.length; i++) {
                // 判断获得的网络状态是否是处于连接状态
                if (net_info[i].getState() == NetworkInfo.State.CONNECTED) {
                    return true;
                }
            }
        }
    }
    return false;
}

继承Activity写一个基类,在onCreate里面做判断,之后需要判断网络可用性的Activity去继承这个基类,就不用写那么多代码了。

至于点击操作的提示,按照楼上的写法,写成一个工具类,每次都去判断调用就行了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题