Android广播的基本介绍

来源:互联网 发布:知乎 小山庆一郎 编辑:程序博客网 时间:2024/05/16 12:15

BroadcastReceiver是Android四大组件之一,是一种信息发送机制,相当于一种全局的监听器,它可以分为发送Broadcast Intent和接收BroadcastReceiver两个部分。在Android系统中,存在着大量的系统广播,比如在接打电话,收发短信,电池状态发生变化时,都会发送一条广播。此时我们可以通过注册BroadcastReceiver接收到这些广播,完成相关的业务操作。

1:静态注册(全局广播)

新建BroadcastReceiver:new—>other—>Broadcast Receiver :

public class MyReceiver extends BroadcastReceiver {    public MyReceiver() {    }    @Override    public void onReceive(Context context, Intent intent) {        //不能耗时操作!!!  只负责传递消息        Log.i("---","收到广播");    }}

配置清单文件:

<receiver            android:name=".broadcast.MyReceiver"            android:enabled="true"            android:exported="true" >            <intent-filter>                <action android:name="com.inext.mycast(可自定义)"/>            </intent-filter></receiver>

发送广播:

Intent intent = new Intent();//全局注册(静态注册)intent.setAction("清单文件中的广播name");sendBroadcast(intent);

2:动态注册(应用广播,只在应用中使用):

新建类DIYBroadCast继承BroadcastReceiver,完成重写方法:

public class DIYBroadCast extends BroadcastReceiver {    @Override    public void onReceive(Context context, Intent intent) {        Log.i("---","接收动态广播");    }}

注册与发送广播:

 //动态注册广播 DIYBroadCast diyBroadCast = new DIYBroadCast(); IntentFilter intentFilter = new IntentFilter(); //添加广播名(自定义) intentFilter.addAction("com.my.broadcast"); //注册 registerReceiver(diyBroadCast, intentFilter); //发送广播,广播名称必须与注册广播的注册名相同 Intent intent = new Intent("com.my.broadcast"); sendBroadcast(intent);
0 0
原创粉丝点击