BroadcastReceiver记录

一、什么是BroadcastReceiver

BroadcastReceiver翻译过来为“广播接收器”,顾名思义它的作用就是用来发送广播和接受广播的,在Android 中可以理解为发送消息,接受消息。

二、BroadcastReceiver的用途

Android四大组件之一,用于不同组件或者多线程之间的通信

三、BroadcastReceiver的分类

  1. 有序广播:
    按照优先级,一级一级的向下传递,接收者可以修改广播数据,也可以终止广播事件。
  2. 无序广播
    所有的接收者都会接收事件,不可以被拦截,不可以被修改。

四、BroadcastReceiver的使用

  1. 定义一个广播接收器
public class myreceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        //在这里写上相关的处理代码,一般来说,不要此添加过多的逻辑或者是进行任何的耗时操作
        //因为广播接收器中是不允许开启多线程的,过久的操作就会出现报错
        //因此广播接收器更多的是扮演一种打开程序其他组件的角色,比如创建一条状态栏通知,或者启动某个服务
    }
}
  1. 对广播进行注册
    注册的方式有两种,一种是动态注册(使用java代码),另外一种则是静态注册(在AndroidMainFest文件中定义)

动态注册的步骤:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    recevier = new myreceiver();
    intentFilter = new IntentFilter();
    intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
    //当网络发生变化的时候,系统广播会发出值为android.net.conn.CONNECTIVITY_CHANGE这样的一条广播
    registerReceiver(recevier,intentFilter);
}

静态注册步骤


            
                
          //开机完成后系统广播发出的一条值为android.intent.action.BOOT_COMPLETED的广播
            

  1. 发送广播
    Intent intent = new Intent();
    intent.setAction("com.example.mymessage");
    //Intent intent = new Intent("com,example.mymessage");
    //也可以像注释这样写
    //sendBroadcast(intent);//发送标准广播
    sendOrderedBroadcast(intent,null);//发送有序广播

你可能感兴趣的:(BroadcastReceiver记录)