BroadCast Receiver(广播)详解
目录
2.在AndroidManifest.xml中写入静态接收名

BroadCast Receiver是四大组件之一,是一个全局的监听器
BroadCast Receiver有两大功能,广播发送者,广播接收者
BroadCast Receiver分为静态广播和动态动态广播
静态广播
1.首先在这边创建广播接收器

2.在AndroidManifest.xml中写入静态接收名
        <receiver
            android:name=".MyStaiticReceiver"
            android:enabled="true"
            android:exported="true">
            <intent-filter>
                <action android:name="wzk" />
            </intent-filter>
        </receiver>3.在主方法把广播发送给静态广播接收者
        btn_sendstatic=findViewById(R.id.btn_sendstatic);
        btn_sendstatic.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //发送广播给静态广播接收者
                Intent intent=new Intent();
                //在Android8.0以上就不支持静态广播了,需要加一个这个
                intent.setPackage(getPackageName());
                intent.setAction("wzk");
                intent.putExtra("info","你好");
                sendBroadcast(intent);
            }
        });        btn_sendstatic=findViewById(R.id.btn_sendstatic);
        btn_sendstatic.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //发送广播给静态广播接收者
                Intent intent=new Intent();
                intent.setPackage(getPackageName());
                intent.setAction("wzk");
                intent.putExtra("info","你好");
                sendBroadcast(intent);
            }
        });4.在广播接收器里面接收广播
        Log.i("MyStaiticReceiver","接收到的值是"+intent.getStringExtra("info"));动态广播:
1.创建广播继承BroadcastReceiver
    class MyDymnicReveiver extends BroadcastReceiver{
        @Override
        public void onReceive(Context context, Intent intent) {
            Log.i("动态广播接收者",intent.getStringExtra("info"));
        }
    }2.在主方法注册动态广播
        //注册动态广播
        myDymnicReveiver=new MyDymnicReveiver();
        IntentFilter intentFilter=new IntentFilter();
        intentFilter.addAction("666");
        registerReceiver(myDymnicReveiver,intentFilter);3.发送给动态广播
        //发送给动态的广播
        btn_send = findViewById(R.id.btn_send);
        btn_send.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent=new Intent();
                intent.setAction("666");
                intent.putExtra("info","动态广播你好");
                sendBroadcast(intent);
            }
        });4.反注册
    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (myDymnicReveiver!=null){
            unregisterReceiver(myDymnicReveiver);
        }
    }