广播接收者简介:
- 广播接收者,Android 四大组件之一,用来接收Android 系统 或者是应用程序发送出来的各种广播信息的。
- 广播:系统/应用程序 发生状态改变的时候,需要想系统中通知其他的应用程序,进行一些操作,这个信息就是广播。
- 广播接收者:应用程序中,用于接收系统或者应用程序发送的消息的组件,当广播收到的时候,会自动的启动。
- 广播的分类:有序、无序
用法:
<receiver android:name=".NetworkReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
</intent-filter>
</receiver>
/**
* 广播接受者,内部只有一个onReceive的方法,用来接收数据
*/
public class NetworkReceiver extends BroadcastReceiver {
private static final String TAG = "NetworkReceiver";
/**
* 当广播信息收到的时候,回掉这个方法,intent内部包含了广播的完整信息
* @param context
* @param intent
*/
@Override
public void onReceive(Context context, Intent intent) {
Log.d(TAG, "onReceive1111111111: "+intent);
String action = intent.getAction();
if (ConnectivityManager.CONNECTIVITY_ACTION.equals(action)) {
ConnectivityManager manager=
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = manager.getActiveNetworkInfo();
if (networkInfo != null) {
int type = networkInfo.getType();
switch (type){
case ConnectivityManager.TYPE_WIFI:
Log.d(TAG, "onReceive: 111111111 wifi");
break;
case ConnectivityManager.TYPE_MOBILE:
Log.d(TAG, "onReceive: 11111111流量");
break;
}
}else {
Log.d(TAG, "onReceive: 1111111111无网络连接");
}
}
}
}