【问题标题】:How to handle no Internet connection with Ion (android library)?如何使用 Ion(android 库)处理没有 Internet 连接?
【发布时间】:2015-05-18 08:43:59
【问题描述】:

我在 Android 上使用Ion Library(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 的手机上进行调试,并且我没有收到任何回调异常。我期望立即出现异常,我认为它必须立即失败。

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

【问题讨论】:

    标签: android android-networking android-ion


    【解决方案1】:

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

    【讨论】:

    • 这让我知道接口是否已启动以及是否已连接,目前对我来说已经足够了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-13
    • 2016-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多