一、标准广播and有序广播

标准广播发出后所有广播接受器几乎同一时刻收到广播,并且没有顺序,所以广播不可被截断。

有序广播发出后同一时刻只能有有一个广播接收器收到广播消息,因此优先级高的广播的先收到消息,并且前面的接受器还可以截断消息。

二、动态注册广播接收器

注册广播的方式有两种:静态注册和动态注册

静态注册是在AndroidManifest.xml注册文件里注册,动态注册时在代码中注册

(1)创建广播接收器

创建一个类继承BroadcastReceiver 并重写onReceive()方法

(2)在onCreat()方法中创建IntentFilter实例

实现Intent过滤器类,并且添加调用.addAction()方法,添加想要监听的action。

(3)在oncreat()方法中实现刚才写的广播接听器

(4)调用registerReceiver()方法注册

registerReceiver(BroadcastReceiver,IntentFilter)将要注册的广播接收器和intent过滤器传给函数,这样就注册了专门用于接收某种action的广播接收器。

(5)动态注册需要在onDestroy()方法中取消注册

unregisterRecevier(BroadcastReceiver)

二、静态注册广播接收器

(1)与动态一样创建继承BroadcastRecevier的类并重写onReceiver()方法

(2)在注册表AndroidManifast.xml里添加注册代码

<receiver
android:name=“.xxx继承自BroadcaseRecevier类”
android:enable="true"
android:exported="true"
>
<intent-filter>
<action android:name="android.intent.action.XXX想要监听的action"></action>
</intent-filter>
</receiver>

  (3)其中enable是指是否启动这个广播接收器;exported:是否允许接收本程序以外的广播

二、静态注册与动态注册

动态注册可以自由控制注册与注销,但是必须要在程序将启动后才可以接收。而静态则可以监听。

在广播接收器中不要写太多操作,并且不能使用进程。

02-01 16:37