BroadcastReceiver

1.分类

  • 普通广播
    范围:整个系统
  • 系统广播
    范围:整个系统
  • 有序广播
    范围:整个系统
  • 本地广播(Local Broadcast)
    背景
    Android中的广播可以跨App直接通信(exported对于有intent-filter情况下默认值为true)
    范围:当前app
//注册应用内广播接收器
//步骤1:实例化BroadcastReceiver子类 & IntentFilter mBroadcastReceiver 
mBroadcastReceiver = new BroadcastReceiver(); 
IntentFilter intentFilter = new IntentFilter(); 

//步骤2:实例化LocalBroadcastManager的实例
localBroadcastManager = LocalBroadcastManager.getInstance(this);

//步骤3:设置接收广播的类型 
intentFilter.addAction(android.net.conn.CONNECTIVITY_CHANGE);

//步骤4:调用LocalBroadcastManager单一实例的registerReceiver()方法进行动态注册 
localBroadcastManager.registerReceiver(mBroadcastReceiver, intentFilter);

//取消注册应用内广播接收器
localBroadcastManager.unregisterReceiver(mBroadcastReceiver);

//发送应用内广播
Intent intent = new Intent();
intent.setAction(BROADCAST_ACTION);
localBroadcastManager.sendBroadcast(intent);

2.注册方式

  • 静态注册
  
              
                  
                  
              
   
  • 动态注册
MyReceiver receiver = new MyReceiver();  
IntentFilter filter = new IntentFilter();  
filter.addAction("android.intent.action.MY_BROADCAST");  
registerReceiver(receiver, filter);  
unregisterReceiver(receiver);  

你可能感兴趣的:(BroadcastReceiver)