• 在android上监听网络状态的变更


        开发过程中经常会遇到一种需求,在你的Activity中需要获得网络连接的状态,以便确认下一步的流程,之前设计过一个复杂的方法,后来发现每次网络状态发生变化了都会发广播出来,广播这是个好东西,有了广播,我们就可以灵活的去处理了。

        当然,首先要加权限 

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

    这样,我们写receiver就可以了。

    <receiver
        
    android:name="NetworkReceiver">
        <intent-filter>
            <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
        </intent-filter>

    </receiver> 

    code里面写

    public class NetworkReceiver extends BroadcastReceiver {

        protected Context    mContext;

        @Override
        public void onReceive(Context context, Intent intent) {
            mContext = context;
            // 第一种
            ConnectivityManager connectivityManager = (ConnectivityManager) context
                    .getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();
            NetworkInfo mobileNetInfo = connectivityManager
                    .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
            showToast("Active Network Type", activeNetInfo);
            showToast("Mobile Network Type", mobileNetInfo);
            // 第二种
            NetworkInfo networkInfo = intent
                    .getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
            String extraInfo = intent
                    .getStringExtra(ConnectivityManager.EXTRA_EXTRA_INFO);
            boolean isFailOver = intent.getBooleanExtra(
                    ConnectivityManager.EXTRA_IS_FAILOVER, false);
            boolean noConnectivity = intent.getBooleanExtra(
                    ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
            NetworkInfo otherNetworkInfo = intent
                    .getParcelableExtra(ConnectivityManager.EXTRA_OTHER_NETWORK_INFO);
            String reason = intent.getStringExtra(ConnectivityManager.EXTRA_REASON);
            //
            showToast("networkInfo", networkInfo);
            showToast("extraInfo", extraInfo);
            showToast("isFailOver", isFailOver);
            showToast("noConnectivity", noConnectivity);
            showToast("otherNetworkInfo", otherNetworkInfo);
            showToast("reason", reason);
        }

        public void showToast(String info, Object object) {
            if (object == null) {
                return;
            }
            Toast.makeText(mContext, info + " : " + object.toString(), 0).show();
        }

  • 相关阅读:
    Redux基础使用
    react native 第三方组件react-native-swiper 轮播组件
    React native中的组建通知通信:
    更新:在MAC上安装RN开发环境的步骤(全)
    React Native组件之BackAndroid !安卓手机的物理返回键的使用
    使用redux简单的实现加法运算(简单的状态改变)
    【HTML+JavaScript(jQuery)】实现侧边栏下拉菜单
    第四章 前端开发——JQuery库
    【HTML+CSS+JavaScript】实现地址选择联动
    【HTML+CSS+JavaScript】实现待办事项(纯DOM实现)
  • 原文地址:https://www.cnblogs.com/mudoot/p/2352767.html
Copyright © 2020-2023  润新知