Android – 布罗兹cast

播音接收器(Broadcast Receiver)

业内广播(Normal
布罗兹casts)完全异步的广播。广播发出后,全部的播音接收器大概与此同时收纳到这条广播

不变广播(Ordered
布罗兹casts)同步广播。同近期刻只有3个播放接收器能接过到这条广播。这一个接收器处理完后,广播才会延续传递。

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

始建广播接收器:调用onReceive()方法,要求一个持续布罗兹castReceiver()的类。

无须在onReceive()方法中添加过多的逻辑操作或耗费时间的操作。因为在播音接收器中不允许开启线程,当onReceive()方法运维较长期而没完工作时间,程序会报错。因此广播接收器一般用来开辟其余零件,比如成立一条状态栏公告或运营三个服务。

行业内部广播

新建一个MyExampleReceiver继承自布罗德castReceiver。

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

abort布罗兹cast();能够截断有序广播

在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);

发送有序广播,应当调用sendOrdered布罗兹cast();

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

地面广播

广播只幸亏应用程序内部开始展览传递,并且广播接收器也只可以吸收到来自本应用程序发出的播放。

本土广播不恐怕静态注册。比全局广播尤其高效。

用Local布罗兹castManager管理广播。将其实例化getInstance(),调用发送广播和登记广播接收器的办法。

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

在配备文件中宣称权限,程序才能访问一些最主要新闻。

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

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

机器开机广播

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

允许三个主次打开窗口使用
TYPE_SYSTEM_ALEOdysseyT,突显在别的具有程序的顶层

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

若果没有报名这几个权限,程序有只怕会奇怪关闭。并弹出对话框。

相关文章