美文网首页
BroadcastReceiver

BroadcastReceiver

作者: woochen123 | 来源:发表于2017-11-29 14:29 被阅读0次

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.注册方式

  • 静态注册
<receiver android:name=".MyReceiver">  
            <intent-filter>  
                <action android:name="android.intent.action.MY_BROADCAST"/>  
                <category android:name="android.intent.category.DEFAULT" />  
            </intent-filter>  
 </receiver>  
  • 动态注册
MyReceiver receiver = new MyReceiver();  
IntentFilter filter = new IntentFilter();  
filter.addAction("android.intent.action.MY_BROADCAST");  
registerReceiver(receiver, filter);  
unregisterReceiver(receiver);  

相关文章

网友评论

      本文标题:BroadcastReceiver

      本文链接:https://www.haomeiwen.com/subject/edbubxtx.html