`

BroadcastReceiver的基本使用

 
阅读更多

 

 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的基本概念,掌握如何编写BroadcastReceiver类,理解IntentFilter以及如何在XML和代码中注册BroadcastReceiver。同时,还需要学习如何在BroadcastReceiver中处理...

    BroadcastReceiver学习(01)

    ### 一、BroadcastReceiver基本概念 BroadcastReceiver是一种服务组件,它能够接收并响应系统或应用层发送的Intent广播。广播分为显式和隐式两种类型。显式广播是针对特定BroadcastReceiver的,而隐式广播则面向...

    BroadCastReceiver的使用

    在本示例中,我们学习了如何利用BroadcastReceiver来实现短信的发送与接收,这只是一个基本的使用场景,实际应用中,BroadcastReceiver还可以用于处理更多系统级和自定义广播事件。在设计和使用BroadcastReceiver时...

    BroadcastReceiver通过接口回调更新界面

    以上就是BroadcastReceiver通过接口回调更新界面的基本实现方式。这种方式提高了代码的可读性和可维护性,使得BroadcastReceiver成为一个独立的模块,可以被多个Activity复用,同时降低了不同组件间的耦合度。在实际...

    Android BroadcastReceiver

    一、BroadcastReceiver基本概念 BroadcastReceiver允许应用程序接收并处理系统或自定义广播事件。系统广播是由Android系统发出的,如设备开机、网络状态变化等;而自定义广播则是由应用程序自己触发的,用于在不同...

    BroadcastReceiver的生命周期

    综上所述,BroadcastReceiver在Android开发中扮演着重要角色,它的生命周期管理和正确使用是确保应用能及时、有效地响应广播的关键。同时,理解源码可以帮助我们更好地定制和优化BroadcastReceiver的行为。

    BroadcastReceiverDemo

    总结来说,"BroadcastReceiverDemo"是一个关于如何利用BroadcastReceiver监听电池电量变化的实例,通过接口实现BroadcastReceiver与应用程序其他部分的数据交换,展示了Android系统事件监听的基本用法。这个示例对于...

    BroadcastReceiver介绍

    `BroadcastReceiver`的使用对于提高应用的响应性和用户体验具有重要意义。 #### 二、应用场景举例 1. **开机自启动**:当设备重启完成时,系统会发送一条特定的广播,应用可以通过接收这条广播来实现开机自启动...

    broadcastReceiver

    1. **BroadcastReceiver的基本概念** BroadcastReceiver允许开发者注册监听特定的广播事件。当一个广播被发送时,所有注册了相应事件的BroadcastReceiver都会收到通知,并有机会处理这个广播。BroadcastReceiver...

    BroadcastReceiver 最好作为内部类

    首先,让我们理解`BroadcastReceiver`的基本概念。`BroadcastReceiver`是Android四大组件之一,它用于监听系统或自定义的广播事件。当某个事件发生时,系统会发送一个广播Intent,而注册了该事件的`...

    使用BroadcastReceiver和接口回调实时监控(监测)网络状态Demo

    以上就是使用`BroadcastReceiver`和接口回调实现实时监控网络状态的基本步骤。在实际应用中,你可能还需要处理更多细节,比如网络类型判断、处理多个网络状态监听者等。通过理解这些知识点,你可以轻松地为你的...

    Android-将一个BroadcastReceiver转成一个Observable

    首先,我们需要理解BroadcastReceiver的基本用法。BroadcastReceiver通常在AndroidManifest.xml中注册,或者在代码中动态注册。当匹配的广播意图被发送时,BroadcastReceiver的onReceive()方法会被调用。这是一个...

    BroadcastReceiver.rar

    一、BroadcastReceiver基本概念 1. 广播(Broadcast):在Android中,广播是一种全局的通知机制,任何应用都可以发送或接收广播。广播分为系统广播和自定义广播,系统广播由系统发起,如开机、关机、网络状态改变等...

    BroadCastReceiver

    一、BroadcastReceiver基本概念 BroadcastReceiver是一个被动服务,当系统发送一个广播时,已注册的BroadcastReceiver会接收到这个广播,并根据Intent的动作、数据、类别等信息来决定是否进行处理。...

    BroadcastReceiver电量监控

    以下是创建BroadcastReceiver的基本步骤: ```java public class BatteryStatusReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.get...

    Service BroadcastReceiver 实例

    本实例将详细讲解如何创建并使用Service BroadcastReceiver。 首先,我们需要了解Service的基本概念。Service是Android四大组件之一,用于在后台执行长时间运行的任务,即使用户不在与应用交互,Service也会继续...

    BroadcastReceiver

    ### 广播Receiver基本概念 `BroadcastReceiver`是Android中的四大组件之一,它负责监听并处理系统或自定义的广播事件。当特定的广播事件发生时,如设备开机、网络状态变化、接收到SMS等,`BroadcastReceiver`会接收...

    Android 之 广播BroadcastReceiver

    首先,我们来看BroadcastReceiver的基本使用。创建一个BroadcastReceiver通常涉及两个步骤:定义Receiver类和注册Receiver。Receiver类需要继承BroadcastReceiver,并重写onReceive()方法,该方法会在接收到广播时被...

    广播接收器-BroadcastReceiver 电池电量显示

    首先,我们了解BroadcastReceiver的基本使用。BroadcastReceiver有两种注册方式: 1. **静态注册**:在AndroidManifest.xml文件中声明BroadcastReceiver。这种方式使得BroadcastReceiver在应用启动时就会自动激活,...

Global site tag (gtag.js) - Google Analytics