android之Broadcast Receiver详解

本文详细介绍了Android中的BroadcastReceiver广播接收者的概念和作用,包括如何创建、动态注册与静态注册广播接收器,以及发送广播的方法。通过本文的学习,开发者能够更好地理解和运用Android广播机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值