一、什么是广播?
在Android中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制。而BroadcastReceiver是对发送出来的 Broadcast进行过滤接受并响应的一类组件。
广播的注册方法:
静态注册和动态注册
广播的分类:
1.无序广播(普通广播)
所有监听该广播接受者都可以监听到该广播
同级别接收先后顺序是随机的(无序)
级别低的后收到广播
接收器不能截断广播的继续传播,也不能处理广播
同级别动态注册高于静态注册
2.有序广播
按照接收者的优先顺序来接收广播,优先级别在intent-filter中的priority中声明,-1000到1000之间,值越大优先级越高,可以终止广播的继续传播,接受者可以修改intent的内容。
同级别接收顺序是随机的
级别低的后收到
能截断广播的继续传播,高级别的广播接收器接收广播后能决定时候截断。
能处理广播
同级别动态注册高于静态注册
3.粘滞广播
不能处理结果给下一个接收者,无法终止广播。
一直存在
可以先发送广播,再注册接收器
需要在清单文件添加android.permission.BROADCAST_STICKY权限
二、静态注册发送无序广播实例:
首先布置发送方代码。创建一个Activity,修改其xml、java代码:
<Button
android:id="@+id/send_btn"
android:layout_width="match_parent"
android:layout_height="50dp"
android:text="send"
/>
main.java:
在按钮的点击事件中写发送广播
public class Main1Activity extends AppCompatActivity {
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main1);
button=findViewById(R.id.send_btn);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClic