当前位置:网站首页>BroadCast Receiver(广播)详解

BroadCast Receiver(广播)详解

2022-08-05 05:15:00 suiyue010211

目录

静态广播

1.首先在这边创建广播接收器

 2.在AndroidManifest.xml中写入静态接收名

3.在主方法把广播发送给静态广播接收者

4.在广播接收器里面接收广播

动态广播:

1.创建广播继承BroadcastReceiver

2.在主方法注册动态广播

3.发送给动态广播

4.反注册


 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);
        }
    }

原网站

版权声明
本文为[suiyue010211]所创,转载请带上原文链接,感谢
https://blog.csdn.net/suiyue010211/article/details/125951403