Android开发动态的监听网络状态的变化

主要思路:使用Android中的四大组件之:BrocastReceiver监听网络状态的变化。接收到网络状态改变的广播之后判断当前的网络是否可用。

创建广播接收器MyNetworkReceiver

public class MyNetworkReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        //**判断当前的网络连接状态是否可用*/
        ConnectivityManager connectivityManager = 
        (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo info = connectivityManager.getActiveNetworkInfo();
        if ( info != null && info.isAvailable()){
            //当前网络状态可用
            int netType = info.getType();
            if (netType == ConnectivityManager.TYPE_WIFI){
                Log.e("NETSTATUE", "当前网络状态为-wifi");
            }else if (netType == ConnectivityManager.TYPE_MOBILE ){
                Log.e("NETSTATUE", "当前网络状态为-mobile");
            }
        }else {
            //当前网络不可用
            Log.e("NETSTATUE", "无网络连接");
        }
    }
}

一、BroadcastReceiver的用法之静态注册:
在AndroidManifest清单文件中注册广播接收器

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

二、BroadcastReceiver的用法之动态注册
可以在Activity的OnCreate()方法中注册onDestory()方法中注销
亦可以再Application的onCreate()方法中注册onTerminate()方法中注销
注册:

receiver = new YunNetworkReceiver();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
registerReceiver(receiver,intentFilter);

注销:

unregisterReceiver(receiver);
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值