1

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

public class CheckInternetConnecting {

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

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

3 回答 3

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;
}
于 2013-02-19T14:19:40.753 回答
0

也许您可以考虑注册一个广播接收器并监听连接变化,如此所述。

于 2013-02-19T14:19:49.677 回答
0

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

添加包:
在 Eclipse 的左侧,在包资源管理器中右键单击 src 文件夹并添加一个新包。包含您的包名很重要,例如,当您的包名是 com.my.project 时,添加一个名为 com.my.project.utils 的包...然后您可以通过例如右键单击和添加 NetworkHelper 类到新包中添加一个新文件。将您的静态代码复制到 NetworkHelper 中,然后一切就绪......

于 2013-02-19T14:09:50.470 回答