• 动态注册广播接收器,监听网络变化


    1:NetChangeReceiver.java

    public class NetChangeReceiver extends BroadcastReceiver{
    
        @Override
        public void onReceive(Context context, Intent intent) {
            ConnectivityManager cm = (ConnectivityManager)
                    context.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo netInfo = cm.getActiveNetworkInfo();
            if(netInfo!=null && netInfo.isAvailable()){
                Toast.makeText(context, "网络已链接", Toast.LENGTH_SHORT).show();
            }else{
                Toast.makeText(context, "网络未链接", Toast.LENGTH_SHORT).show();
            }
        }
        
    }

    2:MainActivity.java

    public class MainActivity extends Activity {
        IntentFilter intentFilter;
        NetChangeReceiver netChangeReceiver;
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            intentFilter = new IntentFilter();
            //当前网络发生变化后,系统会发出一条值为android.net.conn.CONNECTIVITY_CHANGE的广播,所以要监听它
            intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
            netChangeReceiver = new NetChangeReceiver();
            //进行注册
            registerReceiver(netChangeReceiver, intentFilter);
        }
        
        
        @Override
        protected void onDestroy() {
            super.onDestroy();
            //动态注册的广播接收器一定要进行取消注册
            unregisterReceiver(netChangeReceiver);
        }
    }

    3:最后不要忘记声明权限:

     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
  • 相关阅读:
    Go part 7 反射,反射类型对象,反射值对象
    activemq BytesMessage || TextMessage
    Go part 6 接口,接口排序,接口嵌套组合,接口与类型转换,接口断言
    mysql 查询表的字段名称,字段类型
    冒泡(bubblesort)、选择排序、插入排序、快速排序
    用 python 写一个模拟玩家移动的示例
    day 14(作业)
    day 13
    day 12
    day 11
  • 原文地址:https://www.cnblogs.com/yshyee/p/4039404.html
Copyright © 2020-2023  润新知