`

android intent和broadcast receiver广播发送和接收基础

 
阅读更多

Intent介绍

⑴Android中提供了Intent机制来协助应用间的交互与通信,或者采用更准确的说法是,Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Service之间的交互。
(2)与简单函数/方法调用,或者通过库调用接口的方式不太一样。在Intent的使用中你看不到直接的函数调用,相对函数调用来说,Intent是更为抽象的概念,利用Intent所实现的软件复用的粒度是Activity/Service,比函数复用更高一些,另外耦合也更为松散。
(3)Intent 是描述应用想要做什么,Intent 数据结构两个最重要的部分是:
动作:典型的动作类型有:MAIN(活动的门户)、VIEW、PICK、EDIT等。
动作对应的数据:以URI 的形式进行表示例如:要查看某个人的联系方式,你需要创建一个动作类型为VIEW 的Intent,以及一个表示这个人的URI。
(4)Android使用了Intent这个特殊类,实现在屏幕与屏幕之间移动。Intent 类用于描述一个应用将会做什么事。

1 使用类名显式的启动一个特定的Service或Activity.

      例如:

      Intent intent = new Intent(MyActivity.this,OtherActivity.class);

      startActivity(intent);

      代返回结果的

      startActivityForResult(intent,SHOW_SUBACTIVITY)

      发送一个请求码,用来标示返回了结果的子Activity

2  隐式的Intent

       例如:

       Intent intent = new Intent(Intent.ACTION_DTAL,Uri.parse("tel:555-2368"));

       startActivity(intent);

        两个参数:动作和数据

        andorid会解析intent启动一个Activity提供对这个电话号码打电话的动作。

       和显式一样可以传入请求码

IntentFilter过滤器

⑴intentfilter 则用于描述一个activity(或者IntentReceiver)能够操作哪些intent。
一个activity 如果要显示一个人的联系方式时,需要声明一个IntentFilter,这个IntentFilter 要知道怎么去处理VIEW 动作和表示一个人的URI。
⑵IntentFilter 需要在AndroidManifest.xml 中定义。
通过解析各种intent,从一个屏幕导航到另一个屏幕是很简单的。当向前导航时,activity 将会调用startActivity(IntentmyIntent)方法。然后,系统会在所有安装的应用程序中定义的IntentFilter 中查找,找到最匹配Intent对应的activity。新的activity 接收到通知后,开始运行。当startActivity 方法被调用将触发解析Intent 的动作。
⑶这个机制提供了两个关键好处:
Activities 能够重复利用从其它组件中以Intent 的形式产生的一个请求。Activities 可以在任何时候被一个具有相同IntentFilter 的新的Activity 取代。

使用intent广播事件

使用sendBroadcast 方法在组件直接匿名的广播消息

public static final String NEW_LIFEFORM_DETECTED = "com.paad.action.NEW_LIFEFORM";

Intent intent = new Intent(lifeformdetectedReceiver.NEW_LIFEFORM);

sendBroadcase(intent);

使用Broadcast Receiver监听广播

在代码中或者manifest中注册监听和广播的intent相符合的intent-filter

在application节点中添加

<receiver android:name = ".lifeformdetectedreceiver"   ----要注册的broadcast的类名

   <intent-filter>

     <action android:name = "com.paad.alien.action.NEW.LIFEFORM" />

   <intent-filter>

</receiver>

新建扩展broadcast的类用来响应

public class MyBroadcasReceiver extends BroadcastReceiver {

        public void onReceive (Contet,Intent intent){

         响应的方法体

}

}

转载请注明出处

0
1
分享到:
评论

相关推荐

    android 跨应用程序广播发送接受

    本篇文章将深入探讨如何在Android中实现跨应用程序广播的发送与接收,并展示如何在广播接收器中弹出对话框。 首先,我们来看如何发送广播。在Android中,你可以使用`sendBroadcast()`方法来发送一个广播意图...

    Android 学习(26)Intent 分类

    总结来说,Intent是Android系统中组件间交互的关键工具,而Broadcast Receiver则用于监听和响应系统或自定义的广播事件。理解并熟练掌握这两者,对于开发高效、灵活的Android应用至关重要。通过显式和隐式Intent的...

    利用广播Broadcast Receiver,在2个不同的Activity传递数据

    在Android应用开发中,BroadcastReceiver是一种非常重要的组件,它允许应用程序在不直接交互的情况下接收和响应系统或自定义广播事件。本教程将深入探讨如何利用BroadcastReceiver在两个不同的Activity之间传递数据...

    Android新手Broadcast Receiver简单实现

    在Android系统中,BroadcastReceiver(广播接收者)是四大组件之一,它负责监听系统或应用程序发出的广播消息,并在接收到这些消息时执行相应的操作。BroadcastReceiver是Android中实现跨进程通信的一种方式,使得...

    android Intent的用法

    它被用来启动活动(Activity)、服务(Service)或者广播接收器(Broadcast Receiver),并且可以传递数据和执行动作。本篇文章将详细解析Intent的用法。 首先,Intent分为显式Intent和隐式Intent两种类型。显式...

    广播接受者(Broadcast Receiver)

    广播接收者(Broadcast Receiver)是Android系统中的一个重要组件,它允许应用程序在后台接收并响应系统或应用程序广播事件。广播事件可以是系统级别的,如设备启动、网络状态改变,也可以是应用自定义的,用于在...

    Android的Intent实验

    在Android开发中,Intent是一种非常重要的组件,它用于在应用程序的不同组件之间传递消息,实现活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)以及内容提供者(Content Provider)之间的交互...

    Broadcast Receiver Demo

    在Android开发中,四大组件是Activity、Service、Content Provider以及我们这里关注的Broadcast Receiver(广播接收器)。Broadcast Receiver是Android系统中的一个重要组成部分,它允许应用程序在后台接收并响应...

    Android-广播的发送与接收demo

    通过Android Studio的Logcat工具,我们可以看到发送和接收的Log信息。 这个Demo展示了Android广播的基本用法,但实际应用中,广播可能涉及更复杂的逻辑,比如处理数据、响应系统事件等。注意,为了节省系统资源,...

    android的Broadcast Receiver应用机制

    ### Android的Broadcast Receiver应用机制 #### 一、BroadcastReceiver简介 在Android开发中,四大核心组件包括:Activity、Service、BroadcastReceiver以及Content Provider。其中,BroadcastReceiver是一种特殊...

    Android 广播接收 发送 demo

    通过这个简单的Demo,你可以学习到如何在Android应用中发送和接收广播,以及如何处理广播事件。这在很多场景下非常有用,比如在后台接收消息推送、监听设备状态变化等。不过,注意不要滥用广播,因为过多的广播可能...

    Broadcast广播的使用

    发送和接收自定义广播的示例代码如下: ```java // 发送本地广播 Intent intent = new Intent("com.example.MY_LOCAL_BROADCAST"); LocalBroadcastManager.getInstance(this).sendBroadcast(intent); // 接收...

    android intent 的生命周期讲解和历程

    同时,Intent也是Broadcast Receiver接收系统广播的关键工具,例如,监听网络状态变化、电池电量等。 总结来说,Intent是Android组件间通信的核心,它的生命周期与Activity紧密关联。理解和熟练运用Intent对于优化...

    android 广播 receiver的讲解

    当一个BroadcastIntent被发送时,所有匹配该Intent的Receiver都会接收到广播通知,然后执行onReceive()方法。 二、创建BroadcastReceiver 创建BroadcastReceiver通常需要自定义一个类,继承BroadcastReceiver,并...

    Android自学笔记-17-广播接收者(BroadcastReceiver)

    - **无序广播**:所有匹配的BroadcastReceiver都会同时接收到广播,无法控制接收顺序,也无法阻止其他Receiver接收广播。 - **有序广播**:广播按照优先级依次传递,前一个Receiver处理完后才传递给下一个,可以...

    android.intent.action.TIME_TICK

    在Android系统中,广播接收器(Broadcast Receiver)是一种重要的组件,它允许应用程序对全局系统事件做出响应。在给定的标题"android.intent.action.TIME_TICK"中,涉及的是一个特定的系统广播,当系统时间每分钟...

    android demo发送有序广播

    有序广播(Ordered Broadcast)是广播机制的一种类型,具有特定的接收顺序。在这个“android demo发送有序广播”的示例中,我们将深入理解有序广播的工作原理以及如何在实践中应用。 首先,有序广播与普通广播...

    android中广播接收

    在Android系统中,广播接收器(Broadcast Receiver)是一种重要的组件,它允许应用程序监听并响应系统或应用程序发送的各种广播意图(Intent)。广播是Android系统中的一种全局通知机制,用于在不同的应用之间传递...

    Android之Broadcast, BroadcastReceiver(广播)

    - 广播事件可以通过Intent对象进行发送,Intent中携带了广播的数据和目标信息。 - Android系统会根据Intent的ACTION、CATEGORY、DATA等过滤条件,匹配到合适的BroadcastReceiver。 2. 注册BroadcastReceiver的...

Global site tag (gtag.js) - Google Analytics