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