ACCESSAndroid – Broadcast

播音接收器(Broadcast Receiver)

业内广播(Normal
Broadcasts)完全异步的播放。广播发出后,所有的播报接收器几乎与此同时收纳及立刻漫长广播

以不变应万变广播(Ordered
Broadcasts)同步播报。同一时刻才发一个广播接收器能接收至就漫长广播。这个接收器处理完晚,广播才会持续传递。

登记广播。在代码中注册称为动态注册。在AndroidManifest.xml中登记称为静态注册。动态注册的刚波接收器一定要是撤注册。在onDestroy()方法吃调用unregisterReceiver()方法来取消注册。

开创广播接收器:调用onReceive()方法,需要一个继续BroadcastReceiver()的好像。

毫不以onReceive()方法吃上加了多的逻辑操作还是耗时的操作。因为以播放接收器中不允许开线程,当onReceive()方法运行较长时间而没了时,程序会报错。因此广播接收器一般用来开辟其他零件,比如创建同漫漫状态栏通知或者启动一个服务。

正式广播

新建一个MyExampleReceiver继承自BroadcastReceiver。

public class MyExampleReceiver extends BroadcastReceiver{
    @Override    public void onReceive(Context context, Intent intent){        Toast.makeText(context,"Got it",Toast.LENGTH_SHORT).show();        //abortBroadcast();                                  }}

abortBroadcast();可以截断有序广播

每当AndroidManifest.xml中注册广播接收器;name里填接收器的名。

好装广播接收器优先级:<intent-filter
android:priority=”100″>

<receiver android:name=".MyExampleReceiver">    <intent-filter>        <action android:name="com.rust.broadcasttest.MY_BROADCAST"/>    </intent-filter></receiver>

吃接收器接收至均等久“com.rust.broadcasttest.MY_BROADCAST”广播。

出殡自定义广播(标准广播)时,要传送这个价值。例如:

Intent intent = new Intent("com.rust.broadcasttest.MY_BROADCAST");sendBroadcast(intent);

出殡有序广播,应当调用sendOrderedBroadcast();

Intent intent = new Intent("com.rust.broadcasttest.MY_BROADCAST");sendOrderedBroadcast(intent,null);

本地广播

播音只能以应用程序内部开展传递,并且广播接收器也不得不收到及自遵循应用程序发出之播报。

本土广播无法静态注册。比全局广播更加高效。

所以LocalBroadcastManager管理广播。将其实例化getInstance(),调用发送广播及注册广播接收器的方。

–>
sendBroadcast();–> registerReceiver();

以安排文件中扬言权限,程序才能够访问片根本信息。

譬如允许查询系统网络状态。

<uses-permission
android:name=”android.permission.ACCESS_NETWORK_STATE”/>

机器开机广播

<uses-permission
android:name=”android.permission.BOOT_COMPLETED”>

兴一个主次打开窗口以
TYPE_SYSTEM_ALERT,显示在旁所有程序的顶层

<uses-permission
android:name=”android.permission.SYSTEM_ALERT_WINDOW”/>

如果无申请这些权限,程序来或会见奇怪关闭。并弹来对话框。

相关文章