`

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); 
  }

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

   

分享到:
评论

相关推荐

    Android BroadcastReceiver

    介绍了Android广播的基本使用方法

    实验四-Android基本组件交互实验.doc

    【实验要求】 使得学生熟悉Activity、Service和BroadCast基本使用; 使得学生掌握短信接收实现和使用; 使得学生掌握界面跳转基本原理和使用方法; 使得学生掌握服务和广播的基本机制。 【实验原理】 1. Activity...

    Android中BroadcastReceiver案例讲解

    我们在注册一款App的时候,如果注册成功的话,那么我们就直接跳过登陆界面,直接进入主界面,那么我们现在就通过BroadcastReceiver来实现这个功能: (1)注册界面RegisterActivity.java,这里跳过了一些基本的操作...

    BroadcastReceiver:广播接收器的基本操作

    广播接收器 广播接收器的基本操作

    Android四大基本组件介绍与生命周期

    Android四大基本组件介绍与生命周期 Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器......

    嵌入式操作系统及软件开发《Android实验指导书》

    为《嵌入式操作系统及软件开发》课程写的Android实验指导书。共3个实验,文档一共33页,每个实验有具体的操作过程、详细代码和实验...包括:使用BroadcastReceiver取得电池计量信息;使用IntentFilter来进行消息过滤。

    Android 播放器

    6.broadcastreceiver和Handler一起使用来跟新UI(广播接收者必须在5S内返回) 本程序编码遗漏所造成的缺点: 1.Ativity中没有关闭Service功能(也不是不能关闭),请自行调用stopService()函数,停止该服务。 2....

    疯狂Android讲义源代码2

    1.6 Android应用的基本组件介绍 1.6.1 Activity和View 1.6.2 Service 1.6.3 BroadcastReceiver 1.6.4 ContentProvider 1.6.5 Intent和IntentFilter 1.7 本章小结 第2章 Android应用的界面编程 第3章 事件处理...

    Android核心技术与实例详解 PDF扫描版

    本书以Android应用程序的开发为主题 并结合真实的案例向读者详细介绍了Android的基本组件的使用及应用程序开发的整个流程 全书分为三篇共18章 第一篇以简单易懂的实例为依托 详细介绍了Android平台的基本控件 高级...

    一本介绍如何进行安卓(Android)应用程序开发的书籍

    安卓应用程序的基础知识:介绍安卓应用程序的基本结构、组件(Activity、Service、BroadcastReceiver、ContentProvider)以及它们之间的交互方式。 用户界面设计:介绍如何使用XML和Java代码创建安卓应用程序的用户...

    location-samples:多个示例显示了Android上的location API的最佳做法

    示例显示了使用IntentService和BroadcastReceiver 。 :使用绑定并启动的前景服务获取有关设备位置的更新。 位置地址( , ):使用将设备的位置显示为地址。 围栏:创建地理围栏并处理进入和退出过渡。 :使用...

    Broadcast的基本应用

    通过一个按键发送广播,另一个继承BroadcastReceiver的类接收广播并通过Toast显示。

    Android系统的四大组件详解

    Android四大基本组件介绍与生命周期Android四大基本组件分别是Activity,Service服务,ContentProvider内容提供者,BroadcastReceiver广播接收器。  Android四大基本组件介绍与生命周期  Android四大基本组件分别是...

    疯狂Android讲义源码

     1.3.2 使用Android模拟器  (Emulator) 14  1.3.3 使用DDMS进行调试 15  1.3.4 Android Debug Bridge(ADB)  的用法 16  1.3.5 使用DX编译Android应用 18  1.3.6 使用Android Asset Packaging  Tool...

    疯狂Android讲义.part2

    1.3.2 使用Android模拟器 (Emulator) 14 1.3.3 使用DDMS进行调试 15 1.3.4 Android Debug Bridge(ADB) 的用法 16 1.3.5 使用DX编译Android应用 18 1.3.6 使用Android Asset Packaging Tool(AAPT)打包资源 19 ...

    疯狂Android讲义.part1

    1.3.2 使用Android模拟器 (Emulator) 14 1.3.3 使用DDMS进行调试 15 1.3.4 Android Debug Bridge(ADB) 的用法 16 1.3.5 使用DX编译Android应用 18 1.3.6 使用Android Asset Packaging Tool(AAPT)打包资源 19 ...

    Android实例代码

    2.3、基本界面组件:TextView、EditText; Button、ImageButton; 9Patch; RadioButton、CheckBox; ToggleButton;AnalogClock、DigitalClock; ImageView; 2.4、高级界面组件:AutoCompleteTextView; Spinner; ...

    《零点起飞学Android开发》 PDF

    第1篇android开发基础主要介绍了android系统的发展史、基本组件、android开发环境的搭建、android布局、android基本控件、android高级控件、android辅助功能、activity和intent、service与broadcastreceiver、...

Global site tag (gtag.js) - Google Analytics