在整个应用中检查互联网连接的最佳方式

时间:2013-02-19 14:04:01

标签: java android class internet-connection

我想检查整个应用中的互联网连接。我用谷歌搜索了它,但结果是每个人都在每个类中创建一个实例方法并尝试检查互联网连接。我的计划是使用静态方法创建一个类,并在不实例化我的类的情况下检查它。 这样做好主意吗?或者我应该尝试另一种方式?我的计划是做这样的事情:

public class CheckInternetConnecting {

    public static boolean isOnline(Context context) {
         ConnectivityManager cm =
            (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

        return cm.getActiveNetworkInfo() != null &&
            cm.getActiveNetworkInfo().isConnectedOrConnecting();
    }
}

3 个答案:

答案 0 :(得分:1)

您还可以通过以下方式检查互联网连接。

public boolean testConnection() {

    try {
        boolean connectionStatus=false;

        InetAddress addr=InetAddress.getByName("8.8.8.8");//google dns 8.8.8.8


        connectionStatus=addr.isReachable(1000); // 1second time for response

    }                               
    catch (Exception e) {
        e.printStackTrace();
        System.out.println(e.toString());
    }

    return connectionStatus;
}

答案 1 :(得分:0)

你的方法完全没问题。我建议在项目中添加包Utils 并将Helper-Classes放在那里。因此,不要使用类CheckInternetConnecting,而是创建一个类 NetworkHelper 并将静态方法放在那里。

添加套餐
在eclipse的左侧,在您的包浏览器中右键单击您的src文件夹并添加一个新包。包含你的软件包名称非常重要,例如当你的软件包名称是com.my.project而不是添加一个名为com.my.project.utils的软件包时...然后你可以通过右键单击将你的NetworkHelper类添加到新软件包中。添加新文件。将您的静态代码复制到NetworkHelper中,然后全部设置......

答案 2 :(得分:0)

也许您可以考虑注册广播接收器并按照here的说明监听连接变化。