广播接收者BroadcastReceiver

广播接收者简介:

  1. 广播接收者,Android 四大组件之一,用来接收Android 系统 或者是应用程序发送出来的各种广播信息的。
  2. 广播:系统/应用程序 发生状态改变的时候,需要想系统中通知其他的应用程序,进行一些操作,这个信息就是广播。
  3. 广播接收者:应用程序中,用于接收系统或者应用程序发送的消息的组件,当广播收到的时候,会自动的启动。
  4. 广播的分类:有序、无序

用法:

    <!-- 清单文件注册,注册广播接受者,静态注册 -->
        <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);
        //广播接收者使用模式

        //因为他可以支持多个种类action的接受
        String action = intent.getAction();
        if (ConnectivityManager.CONNECTIVITY_ACTION.equals(action)) {
            ConnectivityManager manager=
                    (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo networkInfo = manager.getActiveNetworkInfo();  //返回正在连接的网络信息,null代表飞行模式
            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无网络连接");
                //无网络
            }
        }
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值