`

IntentFilter与BoardCastReceiver

阅读更多

BroadcastReceiver

  在Android中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制。而BroadcastReceiver是对发送出来的 Broadcast进行过滤接受并响应的一类组件。

下面将详细的阐述如何发送Broadcast和使用BroadcastReceiver过滤接收的过程:

  首先在需要发送信息的地方,把要发送的信息和用于过滤的信息(如Action、Category)装入一个Intent对象,然后通过调用 sendOrderBroadcast()或sendStickyBroadcast()方法,把 Intent对象以广播方式发送出去。

  当Intent发送以后,所有已经注册的BroadcastReceiver会检查注册时的IntentFilter是否与发送的Intent相匹配,若匹配则就会调用BroadcastReceiver的onReceive()方法。所以当我们定义一个BroadcastReceiver的时候,都需要实现onReceive()方法。

  注册BroadcastReceiver有两种方式:

  静态注册:在AndroidManifest.xml中用标签生命注册,并在标签内用标签设置过滤器。

  <receiver android:name="myRecevice">    //继承BroadcastReceiver,重写onReceiver方法

    <intent-filter>    

      <action android:name="com.dragon.net"></action> //使用过滤器,接收指定action广播

      </intent-filter>

  </receiver> 

  动态注册:

  IntentFilter intentFilter = new IntentFilter();

  intentFilter.addAction(String);   //为BroadcastReceiver指定action,使之用于接收同action的广播

      registerReceiver(BroadcastReceiver,intentFilter);

  一般:在onStart中注册,onStop中取消unregisterReceiver

  指定广播目标Action:Intent intent = new Intent(actionString);

  并且可通过Intent携带消息 :intent.putExtra("msg", "hi,我通过广播发送消息了");

  发送广播消息:Context.sendBroadcast(intent )

分享到:
评论

相关推荐

    Android使用Intent和Intentfilter进行通信

    本文将深入探讨Intent与IntentFilter的工作原理、使用方式以及它们在实际应用中的重要性。 Intent,可以理解为一个消息传递对象,用于在Android组件之间传递请求或数据。它分为显式Intent和隐式Intent两种类型。...

    Intent和IntentFilter

    Intent 和 IntentFilter 是 Android 应用程序开发中的两个核心概念,它们构成了组件间通信的核心机制。Intent 可以被理解为一个信息载体,用于在不同的应用程序组件之间传递消息,而 IntentFilter 是一种声明机制,...

    Android组件间通信–深入理解Intent与IntentFilter

    在Android开发中,Intent和IntentFilter是两个至关重要的概念,它们构成了Android组件间通信的核心机制。Intent作为消息载体,能够连接应用内的不同组件,如Activity、Service,甚至跨应用进行通信,实现组件级别的...

    Android 中IntentFilter的匹配规则实例详解

    最后,data 的匹配规则与 action 类似,如果过滤规则中定义了 data,那么 Intent 中必须也要定义可匹配的 data。同时只要 Intent 中的 action 能和过滤规则中的任何一个 action 相同即可匹配成功 data 的语法*" ...

    Android组件间通信--深入理解Intent与IntentFilter

    在Android开发中,Intent和IntentFilter是实现组件间通信的关键机制。Intent作为消息载体,能够连接不同的应用组件,包括Activity、Service、BroadcastReceiver等,使得它们可以互相传递数据和触发操作。...

    IntentMatcherDemo:Intent 和 IntentFilter 匹配规则案例

    要想使用隐式 Intent 成功启动 Activity, 必须保证 Intent 中 action、category、data 的设置和要启动的 Activity 的 IntentFilter 相匹配。这是一个 Intent 和 IntentFilter 匹配规则演示的小案例。 Intent 和 ...

    IntentFilter:使用意图过滤器的简单示例

    5. TYPE:与DATA中的MIME类型类似,但通常更简洁,仅指明数据类型。 现在,我们来看一个简单的IntentFilter使用示例。假设我们正在创建一个接收短信的BroadcastReceiver: ```java public class SmsReceiver ...

    隐式意图过滤规则

    在Android开发中,IntentFilter是连接应用程序组件之间通信的关键元素,尤其在启动服务、打开活动或者传递数据时。"隐式意图过滤规则"是IntentFilter的核心特性,它允许一个组件(如Activity或Service)声明它可以...

    TestActivity

    在Android开发中,`IntentFilter`是一个至关重要的概念,它允许我们的应用程序响应特定类型的`Intent`,从而实现不同组件间的通信。`TestActivity`可能是这个话题中的一个示例活动,我们将深入探讨`IntentFilter`...

    Android移动应用开发中BroadcastReceiver单元主要内容.pdf

    - 当Intent广播发出后,所有已注册的BroadcastReceiver会检查其IntentFilter是否与发送的Intent匹配。 - 匹配成功后,BroadcastReceiver的onReceive()方法会被调用,开发者在此方法中编写处理广播事件的逻辑。 3. ...

    android学习教程--广播机制

    在Android开发中,广播机制(Broadcast Mechanism)是系统中的一种重要组件,它允许应用程序接收并...通过熟练掌握BroadcastReceiver的使用,开发者可以创建出能够响应系统事件、与其他应用协同工作的强大应用程序。

    Whac-A-Mole

    "Whac-A-Mole"是一款基于Android平台的趣味游戏,其开发过程中运用了多项核心的Android编程技术,包括多线程、AsyncTask、Adapter、IntentFilter以及自定义View和消息队列。这些技术在Android应用开发中扮演着至关...

    Android Studio——优先级(setComponent()、setPackage()).zip

    总结来说,理解并正确使用`setComponent()`和`setPackage()`以及设置BroadcastReceiver的优先级,可以帮助开发者更好地控制广播的接收与处理流程,从而提升应用的效率和用户体验。在Android Studio中进行Android开发...

    html中打开app

    IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction("android.intent.action.VIEW"); intentFilter.addCategory("android.intent.category.DEFAULT"); intentFilter.setDataScheme("myapp...

    Android_Intent和Intent_Filter详解

    Android Intent和Intent_Filter详解 Android Intent是 Android 组件间通信的载体,它们之间的通信是通过 Intent 对象在不断传递实现的。Android 的三大核心组件 Activity、Service 和 BroadcastReceiver 都是通过 ...

    电信设备-安卓系统中的广播信息运行方法及系统.zip

    五、IntentFilter与优先级 1. IntentFilter:用于指定广播接收器感兴趣的Intent类型,包括action、category、data等。 2. 优先级:在同一应用内,静态注册的接收器优先级高于动态注册;不同应用间的优先级由...

    BroadcastReceiver代码示例

    BroadcastReceiver 可以在后台运行,即使用户并未直接与应用交互,也能接收到相应的广播事件。在这个“BroadcastReceiver代码示例”中,我们将深入探讨如何创建和使用BroadcastReceiver,以及动态和静态注册、数据...

    Intent-Demo-Eclispe.rar_DEMO

    这个压缩包包含了两个示例项目:IntentDemo和IntentFilterDemo,分别展示了Intent的基本用法和IntentFilter的使用。 Intent是用来启动活动(Activity)、服务(Service)或者发送广播(Broadcast)的信使。在...

Global site tag (gtag.js) - Google Analytics