静态注册广播

广播是android四大组件之一,用到的地方还是挺多的,虽然现在用第三方的比较多,比如EventBus ,otto等,但是还是有很多的推送方需要用到静态注册的BroadcastReciever的,还是需要记录一下。

广播有两种注册方式

1.动态注册

MyBroadCastReceiver yBroadCastReceiver = new MyBroadCastReceiver();

//实例化过滤器并设置要过滤的广播  
IntentFilter intentFilter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");

//注册广播   
myContext.registerReceiver(smsBroadCastReceiver,intentFilter, 
             "android.permission.RECEIVE_SMS", null);

注意的是需要在onDestroy的时候,需要进行unregisterReceiver,否则会消耗资源。

2.静态注册,静态注册的广播可以在acticity注销的时候接收到,像之前的项目极光推送就需要静态注册,在后台也可以接收到广播信息

   
        
            
                
            
        
        
            
                
            
        
在调用的地方
 
  
Intent i = new Intent();
i.setAction("com.broadcast");
Bundle bundle = new Bundle();
bundle.putString("bundle", response);
i.putExtras(bundle);
sendOrderedBroadcast(i, null);

就可以发送广播,上面发送的是有序广播,根据优先级接受广播。

你可能感兴趣的:(记录,广播)