Broadcast Receiver监听网络状态
2016-06-01 18:28
344 查看
在代码中动态注册,不需要在AndroidManifest.xml里静态注册,静态注册在不打开App的情况下,有可以接收到广播。
创建NetworkChangeReceiver类继承BroadcaseReceiver
网络状态一旦发生改变,会调用NetworkChangeReceiver 的onReceive(),再去获取网络状态。
public class MainActivity extends Activity { private IntentFilter intentFilter; private NetworkChangeReceiver networkChangeReceiver; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); intentFilter = new IntentFilter(); intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");//监听网络的状态;网络状态改变就会被调动。 networkChangeReceiver = new NetworkChangeReceiver(); registerReceiver(networkChangeReceiver, intentFilter); } @Override protected void onDestroy() { super.onDestroy(); unregisterReceiver(networkChangeReceiver); } }
创建NetworkChangeReceiver类继承BroadcaseReceiver
class NetworkChangeReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { //枚举 enum NetworkStatus {DisConnect,Mobile,Wifi} ConfigConstant.NetworkStatus status =getConnectType(); switch(status){ case DisConnect: break; case Mobile: break; case Wifi: break; } } /* *获取网络状态, */ private ConfigConstant.NetworkStatus getConnectType() { ConnectivityManager connMgr =(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeInfo = connMgr.getActiveNetworkInfo(); if (activeInfo != null && activeInfo.isConnected()){ if (activeInfo.getType() == ConnectivityManager.TYPE_WIFI) return ConfigConstant.NetworkStatus.Wifi; else if (activeInfo.getType() == ConnectivityManager.TYPE_MOBILE) return ConfigConstant.NetworkStatus.Mobile; } return ConfigConstant.NetworkStatus.DisConnect; }
网络状态一旦发生改变,会调用NetworkChangeReceiver 的onReceive(),再去获取网络状态。
相关文章推荐
- Android使用广播(BroadCast)实现强制下线的方法
- Android中的广播(BroadCast)详细介绍
- 简要解释一下activity、 intent 、intent filter、service、Broadcast、BroadcaseReceiver
- 接收其他应用程序发出的创建快捷方式的广播
- angularjs(step by step):消息传播$broadcast $emit 和 $on
- socket.io broadcast的几种用法之初试
- Android基础知识——组件Broadcast Receiver
- Android Broadcast
- ANDROID系统广播总结
- android中在广播中弹出pop框的局限性
- adb启动activity、service或broadcast
- Android 自定义广播实现过程
- iOS 通知机制 Notifications (一)
- 闹钟的设计(ClockDemo)
- socket.io中emit消息形式
- Linux UDP 单播 组播 广播实现
- Android 3.0之后开机无法接收系统广播权限原因
- android之Broadcast
- 不是所有的牛奶(以android.intent.action*开头的broadcast)都叫特仑苏(protected-broadcast)
- 使用 Broadcast Receiver 接收广播消息