BroadcastReceiver: 广播的一种实现
个人理解: 当我们需要判断电池是否没电、收到短信、等一系列动作的时候,系统会发送相应的广播,
通知系统中所有捕获该广播的软件,软件可以做相应的动作
1 静态注册方式,就是在AndroidManifest.xml直接注册
代码: 1) 创建一个类 并实现BroadcastReceiver
import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.util.Log; /** * 静态广播测试 * @author root * */ public class BroadcastReceiverHelper2 extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); Log.e( action, action ); if(action!=null && "com.android.broadcast.RECEIVER_ACTION".equals( action) ){ System.out.println( "11111111"); //则输出日志 Log.e("com.android.broadcast.RECEIVER_ACTION", "com.android.broadcast.RECEIVER_ACTION"); } if(action!=null && "com.android.broadcast.RECEIVER_ACTION2".equals( action) ){ System.out.println( "222222222"); //则输出日志 Log.e("com.android.broadcast.RECEIVER_ACTION2", "com.android.broadcast.RECEIVER_ACTION2"); } } }
2 注册 静态广播对象,包含两个action,任何一个action命中,这个广播都会执行
<!-- 静态注册广播 --> <receiver android:name="me.zhangls.tabsfragment.broadcastReceiver.BroadcastReceiverHelper2" > <intent-filter> <action android:name="com.android.broadcast.RECEIVER_ACTION" /> <action android:name="com.android.broadcast.RECEIVER_ACTION2" /> </intent-filter> </receiver>
3 发送测试广播的按钮布局
<LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" > <Button android:id="@+id/send_button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="5dp" android:onClick="sendReceive" android:text="发送广播1" /> <Button android:id="@+id/send_button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="5dp" android:onClick="sendReceive2" android:text="发送广播2" /> </LinearLayout>
4 执行按钮的方法
/** * 测试 ACTION = "com.android.broadcast.RECEIVER_ACTION";是否可以执行广播 * @param view */ public void sendReceive(View view ){ //实例化Intent Intent intent=new Intent(); //设置Intent的action属性 intent.setAction(ACTION); //发出广播 sendBroadcast(intent); } /** * 测试 ACTION2 = "com.android.broadcast.RECEIVER_ACTION";是否可以执行广播 * @param view */ public void sendReceive2(View view ){ //实例化Intent Intent intent=new Intent(); //设置Intent的action属性 intent.setAction(ACTION2); //发出广播 sendBroadcast(intent); }
二、动态广播使用
1 注册 2 发送 3 接触注册
1、创建广播类
/** * 动态广播测试 * @author root */ public class BroadcastReceiverHelper extends BroadcastReceiver { //定义日志标签 private static final String TAG = "TestDTBroadcast"; @Override public void onReceive(Context context, Intent intent) { Log.e(TAG, "dynamic broadcast 。。。。。。。。"+TAG); } }
2、广播类的注册、发送、解除注册的方法
/** * 测试 ACTION2 = "com.android.broadcast.RECEIVER_ACTION";是否可以执行广播 * @param view */ public void sendReceive2(View view ){ //实例化Intent Intent intent=new Intent(); //设置Intent的action属性 intent.setAction(ACTION2); //发出广播 sendBroadcast(intent); } /** * 动态注册的广播 ,用此方法发送 * @param view */ public void sendReceive1(View view ){ Intent intent=new Intent(); intent.setAction(ACTION3); sendBroadcast(intent); } /** * 动态注册广播 * @param view */ public void addListener(View view ){ receiver=new BroadcastReceiverHelper(); IntentFilter filter=new IntentFilter(); filter.addAction(ACTION3); //动态注册BroadcastReceiver registerReceiver(receiver, filter); } /** * 移除注册的动态广播 * @param view */ public void remListener(View view ){ unregisterReceiver(receiver); }
相关推荐
在学习过程中,你可能需要理解BroadcastReceiver的基本概念,掌握如何编写BroadcastReceiver类,理解IntentFilter以及如何在XML和代码中注册BroadcastReceiver。同时,还需要学习如何在BroadcastReceiver中处理...
### 一、BroadcastReceiver基本概念 BroadcastReceiver是一种服务组件,它能够接收并响应系统或应用层发送的Intent广播。广播分为显式和隐式两种类型。显式广播是针对特定BroadcastReceiver的,而隐式广播则面向...
在本示例中,我们学习了如何利用BroadcastReceiver来实现短信的发送与接收,这只是一个基本的使用场景,实际应用中,BroadcastReceiver还可以用于处理更多系统级和自定义广播事件。在设计和使用BroadcastReceiver时...
以上就是BroadcastReceiver通过接口回调更新界面的基本实现方式。这种方式提高了代码的可读性和可维护性,使得BroadcastReceiver成为一个独立的模块,可以被多个Activity复用,同时降低了不同组件间的耦合度。在实际...
一、BroadcastReceiver基本概念 BroadcastReceiver允许应用程序接收并处理系统或自定义广播事件。系统广播是由Android系统发出的,如设备开机、网络状态变化等;而自定义广播则是由应用程序自己触发的,用于在不同...
综上所述,BroadcastReceiver在Android开发中扮演着重要角色,它的生命周期管理和正确使用是确保应用能及时、有效地响应广播的关键。同时,理解源码可以帮助我们更好地定制和优化BroadcastReceiver的行为。
总结来说,"BroadcastReceiverDemo"是一个关于如何利用BroadcastReceiver监听电池电量变化的实例,通过接口实现BroadcastReceiver与应用程序其他部分的数据交换,展示了Android系统事件监听的基本用法。这个示例对于...
`BroadcastReceiver`的使用对于提高应用的响应性和用户体验具有重要意义。 #### 二、应用场景举例 1. **开机自启动**:当设备重启完成时,系统会发送一条特定的广播,应用可以通过接收这条广播来实现开机自启动...
1. **BroadcastReceiver的基本概念** BroadcastReceiver允许开发者注册监听特定的广播事件。当一个广播被发送时,所有注册了相应事件的BroadcastReceiver都会收到通知,并有机会处理这个广播。BroadcastReceiver...
首先,让我们理解`BroadcastReceiver`的基本概念。`BroadcastReceiver`是Android四大组件之一,它用于监听系统或自定义的广播事件。当某个事件发生时,系统会发送一个广播Intent,而注册了该事件的`...
以上就是使用`BroadcastReceiver`和接口回调实现实时监控网络状态的基本步骤。在实际应用中,你可能还需要处理更多细节,比如网络类型判断、处理多个网络状态监听者等。通过理解这些知识点,你可以轻松地为你的...
首先,我们需要理解BroadcastReceiver的基本用法。BroadcastReceiver通常在AndroidManifest.xml中注册,或者在代码中动态注册。当匹配的广播意图被发送时,BroadcastReceiver的onReceive()方法会被调用。这是一个...
一、BroadcastReceiver基本概念 1. 广播(Broadcast):在Android中,广播是一种全局的通知机制,任何应用都可以发送或接收广播。广播分为系统广播和自定义广播,系统广播由系统发起,如开机、关机、网络状态改变等...
一、BroadcastReceiver基本概念 BroadcastReceiver是一个被动服务,当系统发送一个广播时,已注册的BroadcastReceiver会接收到这个广播,并根据Intent的动作、数据、类别等信息来决定是否进行处理。...
以下是创建BroadcastReceiver的基本步骤: ```java public class BatteryStatusReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.get...
本实例将详细讲解如何创建并使用Service BroadcastReceiver。 首先,我们需要了解Service的基本概念。Service是Android四大组件之一,用于在后台执行长时间运行的任务,即使用户不在与应用交互,Service也会继续...
### 广播Receiver基本概念 `BroadcastReceiver`是Android中的四大组件之一,它负责监听并处理系统或自定义的广播事件。当特定的广播事件发生时,如设备开机、网络状态变化、接收到SMS等,`BroadcastReceiver`会接收...
首先,我们来看BroadcastReceiver的基本使用。创建一个BroadcastReceiver通常涉及两个步骤:定义Receiver类和注册Receiver。Receiver类需要继承BroadcastReceiver,并重写onReceive()方法,该方法会在接收到广播时被...
首先,我们了解BroadcastReceiver的基本使用。BroadcastReceiver有两种注册方式: 1. **静态注册**:在AndroidManifest.xml文件中声明BroadcastReceiver。这种方式使得BroadcastReceiver在应用启动时就会自动激活,...