Android 监听网络是否连接可用

   两种方式:Retrofit的NetworkUtils,blankj的NetworkUtils。

 

  1.在使用Retrofit2.0发http协议的时候,在发之前判断一下就行了

  /**
         * 先判断网络连接状态和网络是否可用,放在回调那里好呢,还是放这里每次请求都去判断下网络是否可用好呢?
         * 如果放在请求前面太耗时了,如果放回掉提示的速度慢,要10秒钟请求超时后才提示。
         * 最后采取的方法是判断网络是否连接放在外面,网络是否可用放在回掉。
         */
        if (!NetworkUtils.isConnected()) {
            ToastUtils.showShortToast("网络连接已断开");
            if (target != null) {
                target.setState(AppConstants.STATE_ERROR);
            }
            return;
        }

2.  blankj,它是一个三方开发工具包有很多常用的开发方法,如果需要实时性,比如界面上有网络是否连接的UI图标,时刻显示当前的网络连接状态,但是时间不用特别精确

一.导入blankj:

 implementation 'com.blankj:utilcode:1.3.6'

二.使用blankj提供的NetworkUtils,在比如主活动中开启一个线程,线程死循环间隔若干秒监听判断就行了

    private class StateThread extends Thread {
        @Override
        public void run() {
            super.run();

            while (true) {
                try {
                    Thread.sleep(6000);
                 if (NetworkUtils.isConnected()) {
                        //XX逻辑
                   }
                } catch (Interrup
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值