转: 从现实生活中理解什么是广播机制

简介: 来自:http://blog.sina.com.cn/s/blog_714338950100p4km.html       一听到广播我们第一感觉就会联想到小时候村里面的广播,每逢村里有什么活动都是通过广播发送的。

来自:http://blog.sina.com.cn/s/blog_714338950100p4km.html

      一听到广播我们第一感觉就会联想到小时候村里面的广播,每逢村里有什么活动都是通过广播发送的。收听收音机也是一种广播,在收音机中有很多个广播电台,每个广播电台播放的内容都不相同。接收广播时广播(发送方)并不在意我们(接收方)接收到广播时如何处理。好比我们收听交通电台的广播,电台中告诉我们现在在交通状况如何,但它并不关心我们接收到广播时做如何做出处理,这不是广播应该关心的问题,OK,到这里我们从生活中的一些小例子浅浅的理解了一下广播,那么Android 中的广播是如何操作的呢?

    Android里的广播机制

      在 Android 里面有各种各样的广播,比如电池的使用状态,电话的接收和短信的接收都会产生一个广播,应用程序开发者也可以监听这些广播并做出程序逻辑的处理。

    案例分析

      一个经典的电话黑名单,首先通过将黑名单号码保存在数据库里面,当来电时,我们接收到来电广播并将黑名单号码与数据库中的某个数据做匹配,如果匹配的话则做出相应的处理,比如挂掉电话、比如静音等等。。。

 

   Android系统里可以接收和发送广播,在Android里可以接收和发送两种形式的广播:

    一、接收系统广播:

       接收系统广播需要两步:

        1.编写一个继承BroadcastReceiver的类,并实现BroadcastReceiver里的onReceiver方法。如果应用程序接收到系统发送的广播,就会调用onReceiver方法。

        2.在AndroidManifest.xml文件里使用<receiver/>标签来配置上步中定义的类以及接收到哪一个Broadcast Action。

    二、在自己的应用程序里发送广播:

        如果在自己的应用程序中发生某些动作时想通知其他的应用程序或向其他应用程序传递数据,就可以考虑通过sendBroadcast方法发送广播。

        使用sendBroadcast方法发送的数据实际上也是Intent对象,只是该Intent对象指定的是Broadcast Action,而不是Activity Action。

        例如:Intent broadcastIntent = new Intent("自己定义的类名");

              sendBroadcast(broadcastIntent);

    ****总结(在自己的应用程序里发送广播)****   

  • 在Android 中如果要发送一个广播必须使用sendBroadCast 向系统发送对其感兴趣的广播接收器中。
  • 使用广播必须要有一个intent 对象必设置其action动作对象
  • 使用广播必须在配置文件中显式的指明该广播对象
  • 每次接收广播都会重新生成一个接收广播的对象
  • 在BroadCast 中尽量不要处理太多逻辑问题,建议复杂的逻辑交给Activity 或者 Service 去处理

 

 

<receiver android:name=".BootCompletedReceiver">  
            <intent-filter>  
                <action android:name="android.intent.action.BOOT_COMPLETED"/>  
            </intent-filter>  
        </receiver> 

 

 

public class BootCompletedReceiver extends BroadcastReceiver
{

    @Override
    public void onReceive(Context context, Intent intent)
    {
        Log.i("MainActivity", "系统启动完毕");
    }
}

 

相关文章
|
8月前
|
SQL 数据库 容器
软件体系结构 - 元组演算
【4月更文挑战第7天】软件体系结构 - 元组演算
114 2
|
算法 数据挖掘 开发者
数据约简| 学习笔记
快速学习数据约简。
数据约简| 学习笔记
|
算法 算法框架/工具
图论算法实例分析|趣味象棋
图论(graph theory)是数学的一个分支,以图为研究对象。图论中的图是由若干给定的点及连接两点的线所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系,用点代表事物,用连接两点的线表示相应两个事物间具有这种关系。
139 0
图论算法实例分析|趣味象棋
|
Python
简单总结广播机制
简单总结广播机制
136 0
|
Python
Numpy中的广播机制,你确定正确理解了吗?
Numpy其提供了大量常用的数值计算功能,当然这些数值计算函数大多依赖于其核心的数据结构:ndarray,也就是N维数组。而关于这个ndarray,有一个重要特性是广播机制,也正是整个广播机制,使得Numpy中的数值计算功能更加丰富和强大。那么问题来了,你是否已经正确理解了这个广播机制呢?
168 0
Numpy中的广播机制,你确定正确理解了吗?
|
Android开发 索引
第二十一章:变换(十)
样式通过将AnchorX值设置为0来结束,该值将旋转中心设置为每个Label的左边缘的垂直中心。 然后每个Label都会获得一个独特的旋转设置:显然,选择“ROTATE”字符串之前的空格,以便R的垂直条组合形成一个看起来几乎像圆的16边多边形。
1050 0
|
JavaScript Android开发 索引
第二十一章:变换(九)
旋转的文字效果轮换很有趣。 旋转动画时更有趣(正如您将在下一章中看到的那样),但即使使用静态图像也很有趣。本章和下一章中的几个旋转示例涉及将视觉元素排列在一个圆圈中,所以让我们首先尝试显示一个简单的圆圈。
886 0
|
Android开发
第二十一章:变换(八)
旋转变换 “旋转”属性旋转屏幕表面上的可视元素。 将“旋转”属性设置为以度为单位的角度(不是弧度)。 正角度顺时针旋转元素。 您可以将“旋转”设置为小于0或大于360的角度。实际旋转角度是旋转属性模数360的值。
846 0
|
Android开发 iOS开发 Windows
第二十一章:变换(六)
两个按钮的Clicked处理程序每个都启动一个独立的动画。 第一个Button的Clicked处理程序将其Scale属性从1设置为5并再次返回,而第二个Button的Clicked处理程序将其FontSize属性设置为1到5的比例因子,然后再返回。
971 0
|
JavaScript Android开发
第二十一章:变换(五)
规模变换 VisualElement类定义名为Scale的属性,您可以使用该属性更改元素的呈现大小。 Scale属性不会影响布局(将在ButtonScaler程序中演示)。它不会影响元素的get-only Width和Height属性,也不会影响包含Width和Height值的get-only Bounds属性。
945 0