如果了解网络通信原理的,应该知道,在一个IP网络范围中,最大的IP地址是被保留作为广播的地址使用的,比如某个网络的IP范围是192.168.0.XXX,子网掩码是245.245.245.0,那么这个网络的广播地址是192.168.0.245.广播的数据会发给同一网络上的所有端口,这样该网络中的每台主机都将会受到这条广播。
而Android中的广播机制则更为灵活,因为每个应用程序可以对自己感兴趣的广播进行注册,这样程序只需要接受到自己关心的广播内容,例如关闭启动WiFi。
而Android中的广播主要分为两种类型:
标准广播,是一种完全异步执行的广播,在广播发出后,所有的接收器都会接收到该广播,而且几乎是同一时间,因此没有前后顺序之分,效率非常高。但是同时也意味着,它无法被拦截
有序广播,是一个同步执行的广播,在广播发出后,同一时间只会有一个接收器收到该广播信息,当这个接收器的所有逻辑执行完毕之后广播才会继续向下个接收器传递,这个时候优先级高的接收器就会先接收到广播,并且可以拦截广播
那么在广播中,最基础的就是静态注册广播接收器
首先新建一个Java类,通过"New/Other/Broadcast Receiver",命名为MyReceiver,添加以下内容
public MyReceive{
public void OnReceive(Context context,Intent intent){
Toast.maetText(context,"收到一条广播",toast.LENGTH_LONG).show();
}
}
然后在MainAcitivity中添加一个类
public void sendBc(View view){
sendBroadcast(new Intent(this.MyReceive.class));
}
然后在AndroidManifest.xml注册
最后在XML中新建一个Button,添加一个onclick
android: >