networkInfo.isConnected() 方法 return 即使没有互联网也是如此?

networkInfo.isConnected() method return true even there is no internet?

我开发了这个应用程序,主要是 activity 我检查互联网连接如下:

ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

    NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();

    if (networkInfo != null && networkInfo.isConnected()) {
        LoaderManager loaderManager = getSupportLoaderManager();
        loaderManager.initLoader(1, null, this);

    }

当我去 HOURLY activity 时,我用与上面相同的方法 onCreate() 方法检查互联网。

我的问题,当我打开主 activity 我断开互联网并转到 HOURLY activity 来处理 "no internet exception" 但 networkInfo.isConnected() HOURLY activity return true 为什么互联网仍然连接???

我不知道你打算用上面的代码做什么,但我相信这会起作用。

ConnectivityManagergetActiveNetworkInfo() 方法 returns 一个 NetworkInfo 实例,表示它可以找到的第一个连接的网络接口,如果 none 个接口,则为 null连接。检查此方法 returns null 是否足以判断互联网连接是否可用。

private boolean isNetworkAvailable() {
    ConnectivityManager connectivityManager 
          = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
    return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}

您还需要:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

在您的 android 清单中。

请注意,拥有活动的网络接口并不能保证特定的网络服务可用。网络问题、服务器停机、低信号、强制门户、内容过滤器等都会阻止您的应用程序到达服务器。例如,在收到来自 Twitter 服务的有效响应之前,您无法确定您的应用是否可以访问 Twitter。