当前位置:  开发笔记 > 编程语言 > 正文

RxJava/RxAndroid检查互联网连接是否可用

如何解决《RxJava/RxAndroid检查互联网连接是否可用》经验,为你挑选了1个好方法。

我有这个代码来检查互联网连接是否可用.

    public static boolean  isOnline() {
    Runtime runtime = Runtime.getRuntime();
    try {
        Process ipProcess = runtime.exec("/system/bin/ping -c 1 8.8.8.8");
        int exitValue = ipProcess.waitFor();
        return (exitValue == 0);
    } catch (IOException | InterruptedException e) {
        e.printStackTrace();
    }
    return false;
}

现在我想使用RxJava/RxAndroid执行相同的任务.那怎么能这样呢?



1> Edson Menega..:

如果您被允许使用,ConnectivityManager这是检查互联网连接的快速方法:

public static Observable isInternetOn(Context context) {
    ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
    return Observable.just(activeNetworkInfo != null && activeNetworkInfo.isConnected());
    }

然后按如下方式使用它:

private Observable executeNetworkCall() {
    return isInternetOn(context)
            .filter(connectionStatus -> connectionStatus)
            .switchMap(connectionStatus -> doNetworkCall()));
}


如果您需要更多信息,此答案提供了更详细的说明.

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有