android之Broadcast Receiver详解

1.概念和作用
BroadcastReceiver 广播接受者,用来接收系统和应用内部的广播。
使用BraodcastReceiver接收广播通知,并可以做出回应的一个组件。通过广播我们可以监听到很多系统相关的变化列如电量、时间、网络、开机等等相应变化,根据这些变化我们可以更好的根据自己的需求做相应的处理。

2.BroadcastReceiver的使用
使用BroadcaseReceiver,就要在代码中进行注册,BroadcastReceiver俩种注册方式,动态注册和静态注册。
首先,创建一个BroadcastReceiver。创建自己的BroadcastReceiver对象,需要继承android.content.BroadcastReceiver,并实现其onReceive方法

public class Receiver extends BroadcastReceiver {
   @Override
   public void onReceive(Context context, Intent intent) {
    if (intent != null) {
        //收到广播后处理
        String action = intent.getAction();
        }
    }
}

(1)动态注册,一般在activity或service中注册一个广播

private Receiver mReceiver = new Receiver();

IntentFilter myIntentFilter = new IntentFilter();
myIntentFilter.addAction(android.intent.action.ACTION_NAME);
registerReceiver(mReceiver,myIntentFilter);


//实现BroadcastReceiver方法,接受第三个文件发来的广播


//当此页面销毁的时候,解除广播。registerReceiver是android.content.ContextWrapper类中的方法,Activity和Service都继承了ContextWrapper,所以可以直接调用。在实际应用中,在Activity或Service中注册了一个BroadcastReceiver,当这个Activity或Service被销毁时如果没有解除注册,系统会报一个异常,提示我们是否忘记解除注册。
 @Override
 protected void onDestroy() {
        super.onDestroy();
        unregisterReceiver(mReceiver);
    }

动态注册方式,不是常驻型的,广播会跟随程序的生命周期。

(2)静态注册 ,在AndroidManifest.xml文件中配置。

<receiver android:name=".Receiver">  
    <intent-filter>  
         <action android:name="android.intent.action.ACTION_NAME"/>  
         <category android:name="android.intent.category.DEFAULT" />  
     </intent-filter>  
</receiver>  

配置了以上信息之后,只要是android.intent.action.ACTION_NAME这个地址的广播,Receiver都能够接收的到。这种方式的注册是常驻型的,当应用关闭后,如果有广播信息传来,Receiver也会被系统调用而自动运行。

(3)发送广播
以上俩种方式注册完后可以使用以下方式发送广播

//在第三个文件发送广播
 Intent mIntent=new Intent(android.intent.action.ACTION_NAME);
 mIntent.putExtra("broadcast", "hello");
 sendBroadcast(mIntent);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值