通过广播进行网络状态监听

来源:互联网 发布:echarts java 类库 编辑:程序博客网 时间:2024/05/22 14:17
1.创建广播类public class NetReceiver extends BroadcastReceiver {    @Override    public void onReceive(Context context, Intent intent) {        ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);        //获取wifi链接信息        NetworkInfo wifiNetworkInfo = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);        //获取移动网络链接信息        NetworkInfo mobileNetworkInfo = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);        if(wifiNetworkInfo.isConnected() && !mobileNetworkInfo.isConnected() ){            Toast.makeText(context, "WIFI已连接,移动数据已断开", Toast.LENGTH_SHORT).show();        }else if(!wifiNetworkInfo.isConnected() && mobileNetworkInfo.isConnected()){            Toast.makeText(context, "WIFI已断开,移动数据已连接", Toast.LENGTH_SHORT).show();        }else if(!wifiNetworkInfo.isConnected() && !mobileNetworkInfo.isConnected()){            Toast.makeText(context, "网络异常,请检查设置", Toast.LENGTH_SHORT).show();        }  }}2.注册广播
NetReceiver netReceiver=null;@Overridepublic void onResume() { if(netReceiver==null){        netReceiver = new NetReceiver();    }    IntentFilter filter=new IntentFilter();    filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);    getActivity().registerReceiver(netReceiver,filter);    super.onResume();}

3.注销广播
@Overridepublic void onPause() {    getActivity().unregisterReceiver(netReceiver);    System.out.println("====注销");    super.onPause();}

原创粉丝点击