`
meohao
  • 浏览: 97777 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

写在20110922:Broadcast

 
阅读更多
Broadcast分为三种:
1.普通广播   无序
  this.sendBroadcast(i)    
  this.getContext().sendBroadcast(i, "权限")
2.有序广播  (可以配置有序广播的优先级) 
  this.getContext().sendOrderedBroadcast(i, null);
3.粘性广播  
  this.sendStickyBroadcast(i);

广播的发送意图有两种:
1.显示意图   仅一方接收
2.隐式意图   可以多方接收
  只需在注册接收者的时候将action设为一样即可
  发布者可以//指明接收方需要具备的权限

广播接收者的注册方式有两种
1.声明式注册 AndroidManifestxml
2.编程式注册  .java
  接收者可以 permission约束 发送方需要具备的权限

广播主要是进程间通信
   当两个或者多个进程发送消息时,广播接收者不需要在线,在三大组件中receiver(广播)的生命周期最短。


广播接受者的响应
   每次广播到来时,会重新创建receiver对象,并且调用onReceive()方法,执行完以后,该对象即被销毁.当onReceive()方法在10秒内没有执行完毕,系统会认为该程序无响应.所以在BroadcastReceiver里不能做一些比较耗时的操作,否侧会弹出ANR(Application No
Response)的对话框。如果需要完成一项比较耗时的工作,应该通过发送Intent给Service,由Service来完成。这里不能使用子线程来解决,因为BroadcastReceiver的生命周期很短,子线程可能还没有结束BroadcastReceiver就先结束了。BroadcastReceiver一旦结束,此时BroadcastReceiver的所在进程很容易在系统需要内存时被优先杀死,因为它属于空进程(没有任何活动组件的进程).如果它的宿主进程被杀死,那么正在工作的子线程也会被杀死.所以采用子线程来解决是不可靠的。
public void onReceive(Context context, Intent intent) {
//发送Intent启动服务,由服务来完成比较耗时的操作
Intent service = new Intent(context, XxxService.class);
context.startService(service);
}
分享到:
评论

相关推荐

    Android应用:Broadcast的Sender和Receiver

    工程1:Broadcast的Sender,负责发送广播 工程2:Broadcast的Receiver,负责监听广播(2种注册方式:XML和代码动态注册),一旦监听到广播,弹出Activity,并显示广播携带的数据。 本代码含金量很高哦,简单而直观...

    Android实例四:BroadCast_Receiver

    这篇博客"Android实例四:BroadCast_Receiver"将深入探讨如何在实际项目中使用BroadcastReceiver。 首先,我们需要了解BroadcastReceiver的基本概念。BroadcastReceiver是一个抽象类,用于接收并处理系统或应用广播...

    Pro Android学习:Broadcast小例子

    这是Pro Android学习系列中Broadcast部分的例子源代码。相关学习笔记见:http://blog.csdn.net/flowingflying/article/details/6212512

    udpbroadcast.zip

    在广播应用中,我们通常会使用`QHostAddress::Broadcast`常量,它代表网络上的所有设备。通过将广播地址与`QUdpSocket`关联,我们可以向网络上的所有设备发送数据。 `QTimer`类是QT时间管理的一部分,它可以定期...

    Android Broadcast 广播机制 实例

    在Android系统中,Broadcast(广播)是一种非常重要的组件,它使得应用程序之间能够进行无状态的信息传递,即使这些应用并未在运行。Broadcast机制是Android事件驱动模型的核心部分,它允许应用程序在系统级别发布和...

    broadcast交换机操作指南

    Broadcast光纤交换机尤其在大型网络环境中起着至关重要的作用,因为它们支持高速、长距离的数据传输。以下是对"broadcast交换机操作指南"的详细说明,以及与博科(Brocade)交换机相关的知识点。 1. **Broadcast...

    broadcast功能大集合

    广播(Broadcast)是Android系统中一种重要的组件,用于在应用程序之间传递消息和数据。它具有全局性和异步性,使得即使应用程序不在运行状态,也可以接收到系统或其它应用发送的广播事件。本篇文章将深入探讨...

    第八章_Android广播事件处理Broadcast_Receiver

    在Android应用开发过程中,Broadcast Receiver是一种重要的组件,它主要用于接收来自系统或其他应用程序发送的广播消息。通过这种方式,应用可以了解到外部环境的变化,比如网络状态改变、电量变化等,并据此作出...

    Android应用源码之broadcast_broadcast.zip

    在Android系统中,Broadcast(广播)是实现组件间通信的一种重要机制。BroadcastReceiver(广播接收者)是Android四大组件之一,它能监听并接收系统或应用程序发出的各种广播事件,然后根据事件执行相应的处理逻辑。...

    broadcast_Android 广播机制broadcast用法实例.rar

    在Android系统中,广播(Broadcast)是一种非常重要的组件,它允许应用程序之间进行异步通信,即使这些应用在后台运行或完全未启动。BroadcastReceiver是处理广播的核心类,它监听并响应系统或应用发送的广播意图...

    broadcast和service的demo

    在Android系统中,Broadcast(广播)和Service是两个至关重要的组件,它们负责应用程序间的通信以及后台任务的执行。Broadcast主要用于在整个系统中发送和接收消息,而Service则用于在没有用户界面的情况下执行长...

    Broadcast知识点总结

    Broadcast,即广播,是Android系统中一种全局通知机制,它允许应用程序之间相互通信,即使它们并未直接相互关联。BroadcastReceiver是广播的核心组件,用于监听并接收系统或应用发布的广播Intent。 1. **Broadcast...

    android之旅-Intent和BroadcastReceiver示例代码

    在Android开发中,Intent和BroadcastReceiver是两个至关重要的组件,它们构成了Android系统中不同组件间通信的核心机制。Intent用于在应用程序的不同组件之间传递消息,而BroadcastReceiver则是一种响应这些消息的...

    Broadcast demo

    在Android系统中,Broadcast(广播)是一种全局的消息传递机制,它允许应用程序之间进行异步通信。Broadcast demo是一个演示了如何在Android中简单使用Broadcast的示例项目。通过这个项目,我们可以学习到关于...

    AE的Broadcast Colors.pdf

    Broadcast Colors是AE中一个关键的概念,它涉及到电视信号传输的标准和限制,确保最终输出的视频内容能够在电视上正确、无失真地播放。 电视信号的传输带宽有限,比如我国的PAL制标准,其带宽为8MHz,而美国和日本...

    Android中关于Broadcast、Intent 的应用

    在Android系统中,Broadcast(广播)和Intent是两个至关重要的组件,它们构成了应用程序间通信的基础。Broadcast用于在应用程序之间传递消息,而Intent则扮演着触发操作的“信使”角色。理解并熟练运用这两个概念,...

    Broadcast示例代码

    在Android系统中,Broadcast(广播)是四大组件之一,它是一种全局的消息传递机制,使得应用程序之间可以进行异步通信。BroadcastReceiver(广播接收者)是处理这些广播消息的组件,即使应用在后台运行或者完全关闭...

    BROADCAST ROUTING ALGORITHM_cprogramming_broadcast_

    PROGRAM TO IMPLEMENT BROADCAST ROUTING ALGORITHM

    broadcast

    在IT行业中,广播(Broadcast)通常指的是网络通信中的一种机制,允许一个节点向网络上的所有其他节点发送消息,而无需知道每个接收者的具体地址。在本文中,我们将深入探讨广播的概念,以及它在服务器(server)和...

    运用广播变量(关键词:broadcast())查找每个ip所对应的地址,以及每个地址出现的频率;int转十进制的方法;二分查找的方法

    在Spark编程中,广播变量(Broadcast Variables)是一种优化机制,用于在集群中高效地分发大对象。在上述代码中,`broadcast()` 函数被用来创建一个广播变量 `ipBrocast`,它存储了 `ipRulesArr` 集合。`ipRulesArr`...

Global site tag (gtag.js) - Google Analytics