我正在使用此代码来检查是否连接了WiFi或移动网络。

private boolean isOnline() {
        ConnectivityManager cm =   (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo netInfo = cm.getActiveNetworkInfo();
        if (netInfo != null && netInfo.isConnected()) {
            return true;
        }
        return false;
    }


这很好。但是,如果我的用户使用的是预付费计划,却没有任何数据信用怎么办?如果启用了数据,此方法仍将返回true,但是当我的应用尝试从服务器下载数据时会崩溃。我如何检查这样的东西?

我想即使有wifi /移动网络,也有其他事情可能会阻止我的应用访问服务器。

最佳答案

作为移动平台,Android上的互联网访问本质上是不可靠的。在您开始意识到这一点时,您应该在编写应用程序,以便它可以承受间歇性的数据访问。

您正在捕获一些异常,但未处理它们-这意味着您的应用将继续通过异常,好像它没有发生一样,然后由于您的httpClient对象处于无效状态并可能引发新的异常而崩溃。没有赶上。

10-04 11:07
查看更多