广播属于Android中四大组件之一
他可以跨App传递信息,就像我们手机没电了弹出的通知手机电量不足等等,
大部分是通过广播来完成的,就简单了解下广播
使用广播前我们要先对广播接收者进行注册,然而注册分为两种
第一种:静态注册
在清单文件中进行对广播接收者的注册
<!--自己创建的广播接收者-->
<receiver android:name=".MyBoradcastReceiver">
<!--优先级-->
<intent-filter android:priority="1000">
<!--地址-->
<action android:name="com.111"/>
</intent-filter>
</receiver>
广播接收者
//广播接收者
public class MyBoradcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//判断地址
if (intent.getAction().equals("com.111")){
//获取广播发送的内容
String msg = intent.getStringExtra("msg");
Log.i("---","接收静态注册广播:"+msg);
}
}
}
发送广播
这里我是整了个点击事件触发的
//静态广播
Intent intent = new Intent();
//发给谁(地址)
intent.setAction("com.111");
//发送的内容
intent.putExtra("msg", "111111111111");
//发送广播
manager.sendBroadcast(intent);//随机发送广播
// Intent 广播接收方
//sendOrderedBroadcast(intent,null);//有序发送广播
第二种:动态注册
一般动态注册还是用得多,比较方便
//动态注册
MyBoradcastReceiver myboradcastReceiver = new MyBoradcastReceiver();
IntentFilter intentFilter = new IntentFilter();
//优先级
intentFilter.setPriority(100);
//地址
intentFilter.addAction("com.222");
//注册
manager.registerReceiver(myboradcastReceiver, intentFilter);
广播接收方
//广播接收者
public class MyBoradcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//判断地址
if (intent.getAction().equals("com.222")){
//获取广播发送的内容
String msg = intent.getStringExtra("msg");
Log.i("---","接收动态注册广播:"+msg);
}
}
}
广播的优先级
广播的优先级为:-1000~1000
优先级越高越先接到广播
动态注册广播和静态注册广播比较:动态注册广播先接到广播