1

我在 Android 上使用离子库(Android 异步网络和图像加载)。执行通用 HTTP 请求的典型代码与此类似:

Ion.with(context)
.load("http://example.com/thing.json")
.asJsonObject()
.setCallback(new FutureCallback<JsonObject>() {
    @Override
    public void onCompleted(Exception e, JsonObject result) {
        // do stuff with the result or error
    }
});

当没有互联网连接时,我不知道该怎么办。我正在禁用 wifi 和 3G 的手机上进行调试,并且我没有收到任何回调异常。我期望立即出现异常,我认为它必须立即失败。

我必须如何管理这种情况?提前致谢

4

1 回答 1

3

ConnectivityManager 的 getActiveNetworkInfo() 方法返回一个 NetworkInfo 实例,表示它可以找到的第一个连接的网络接口,如果没有连接任何接口,则返回 null。检查此方法是否返回 null 应该足以判断 Internet 连接是否可用。

 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 清单中。

于 2015-05-18T09:26:32.750 回答