ANDROID培训准备资料之BroadcastReceiver

BroacastReceiver的启动方式?

(1)     创建需要启动的BroadcastReceiver的Intent。

(2)     调用context的sendBroadcast()或者sendOrderBroadcast()方法来启动制定的BroadcastReceiver。

BroadcastReceiver的生命周期?

(1)     BroadcastReceiver本质上只是一个系统级别的监听器,它专门负责监听各程序所发出的Broadcast

(2)     每次系统Boradcast的事件发生后,系统就会创建对应的BroadcastReceiver的实例,并且触发它的onReceive()方法,onReceive()方法执行完毕之后,BroadcastReceiver的实例就会销毁

(3)     如果BroadcastReceiver的onReceiver()方法不能再10秒之内执行完成,Android会认为该程序无响应。

怎样指定broadcastReceiver能匹配的Intent

(1)     使用代码进行指定,调用BroadcastReceiver的context的registerReceiver(BroadcastReceiver receiver,InterFilter filter)方法指定。例如

IntenFilter filter=new IntentFilter(“”keranbin);

KeranbinReceiver receiver=new KeranbinReceiver();

registerReceiver(receiver,filter);

(2)在AndroidManifest.xml文件中配置。例如

          <receiver android:name=.KeranbinReceiver>

                    <intent-filter>

                            <action android:name=”keranbin”/>

                     </intent-filter>

              </receiver>

广播的种类?

(1)     Normal Broadcast(普通广播),异步的广播,可以在同一时刻被所有的接收者接收到,消息传递效率比较高,但是接收者无法将结果传递给下一个接收者,而且无法终止广播,启动方式为sendBroadcast();

(2)     Ordered Broadcast(有序广播),接收者会按优先级别依次接收广播,优先级别声明在<intent-filter……./>中或者IntentFilter.setPriority(),取值范围为-1000~1000,数字越大,级别越高,虽然有序广播的接收效率相对来说不如普通广播,但是有序广播可以在结果对象中存入数据(setResultExtras(Bundle))并将结果传递给下一个接收者,而且还可以通过abortBroadcast()终止广播。

BroacastReceiver的启动方式?

(1)     创建需要启动的BroadcastReceiver的Intent。

(2)     调用context的sendBroadcast()或者sendOrderBroadcast()方法来启动制定的BroadcastReceiver。

BroadcastReceiver的生命周期?

(1)     BroadcastReceiver本质上只是一个系统级别的监听器,它专门负责监听各程序所发出的Broadcast

(2)     每次系统Boradcast的事件发生后,系统就会创建对应的BroadcastReceiver的实例,并且触发它的onReceive()方法,onReceive()方法执行完毕之后,BroadcastReceiver的实例就会销毁

(3)     如果BroadcastReceiver的onReceiver()方法不能再10秒之内执行完成,Android会认为该程序无响应。

怎样指定broadcastReceiver能匹配的Intent

(1)     使用代码进行指定,调用BroadcastReceiver的context的registerReceiver(BroadcastReceiver receiver,InterFilter filter)方法指定。例如

IntenFilter filter=new IntentFilter(“”keranbin);

KeranbinReceiver receiver=new KeranbinReceiver();

registerReceiver(receiver,filter);

(2)在AndroidManifest.xml文件中配置。例如

          <receiver android:name=.KeranbinReceiver>

                    <intent-filter>

                            <action android:name=”keranbin”/>

                     </intent-filter>

              </receiver>

广播的种类?

(1)     Normal Broadcast(普通广播),异步的广播,可以在同一时刻被所有的接收者接收到,消息传递效率比较高,但是接收者无法将结果传递给下一个接收者,而且无法终止广播,启动方式为sendBroadcast();

(2)     Ordered Broadcast(有序广播),接收者会按优先级别依次接收广播,优先级别声明在<intent-filter……./>中或者IntentFilter.setPriority(),取值范围为-1000~1000,数字越大,级别越高,虽然有序广播的接收效率相对来说不如普通广播,但是有序广播可以在结果对象中存入数据(setResultExtras(Bundle))并将结果传递给下一个接收者,而且还可以通过abortBroadcast()终止广播,启动方式为sendOrderedBroadcast()

原文地址:https://www.cnblogs.com/bdsdkrb/p/5973166.html