Android 全局监听判断有无网络(动态广播)

本人之前处理这个事情,网上很多的demo例子,都是在activity里的,本人一直想在appliation中设置,结果很麻烦弄了很多类还是会有bug和crash,想在全局设置判断网络费了一会功夫,网上有大神说可以利用广播实施监听

下面分享自己的例子给大家,没有那么麻烦,很简单

首先在Mainactivity

public class MainActivity extends Activity  {
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.login);
        setBreoadcast();
      
    }
 
    /**
     * 设置网络监听
     */
    private void setBreoadcast() {
        BroadcastReceiver receiver=new NetBroadCastReciver();
        IntentFilter filter=new IntentFilter();
        filter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);
        filter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
        filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
        registerReceiver(receiver, filter);
    }
然后在一个广播的类里

public class NetBroadCastReciver extends BroadcastReceiver {
 
    /**
     * 只有当网络改变的时候才会 经过广播。
     */
    private MyDialog dialog;
    private View view;
 
    @Override
    public void onReceive(Context context, Intent intent) {
 
        //此处是主要代码,
        //如果是在开启wifi连接和有网络状态下
        if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intent.getAction())) {
            ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo info = intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
            if (NetworkInfo.State.CONNECTED == info.getState()) {
                //连接状态 处理自己的业务逻辑
                EventBus.getDefault().post(new BroadCastEvent(SharePrefrence.BooleanBroadCast));
            } else {
                Toast.makeText(context, "网络链接失败", Toast.LENGTH_SHORT).show();
                context.startActivity(new Intent(context, BooleanNetWork.class));
            }
        }
 
 
    }
 
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值