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

简介: 来自: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", "系统启动完毕");
    }
}

 

相关文章
|
4月前
|
移动开发 算法
一篇文章讲明白差分
一篇文章讲明白差分
19 0
|
11月前
|
Python
简单总结广播机制
简单总结广播机制
|
12月前
不适合做朋友的人有哪些逻辑特征(三)
不适合做朋友的人有哪些逻辑特征(三)
65 0
|
机器学习/深度学习
将现实问题转换为编程问题
考虑到一共五个人,直接模拟推理有些太难,计算机最擅长的遍历此时就会派上用场,将每个人从第1到第5来一遍,则一共会产生5^5种可能性,这个只需要一个5层循环即可搞定。但是这样会导致一些不期望出现的结果出现,因为并没有查重,所以会出现两个人抢名次的情况,也就是两个人或者更多的人名次相同的情况,例如两个第二,三个第三这样的,所以即使满足了条件,也要查看一下五个人的名次是否重复,这个交给一个函数来执行,只要五个人名次并列,那就返回0,否则返回1即可。有了这个思路,就能完成以下代码。
74 0
|
编解码
失真的概念和定义
失真的概念和定义
137 0
|
机器学习/深度学习 算法
一文通俗讲透树模型
决策树模型因为其特征预处理简单、易于集成学习、良好的拟合能力及解释性,是应用最广泛的机器学习模型之一。
|
Python
Numpy中的广播机制,你确定正确理解了吗?
Numpy其提供了大量常用的数值计算功能,当然这些数值计算函数大多依赖于其核心的数据结构:ndarray,也就是N维数组。而关于这个ndarray,有一个重要特性是广播机制,也正是整个广播机制,使得Numpy中的数值计算功能更加丰富和强大。那么问题来了,你是否已经正确理解了这个广播机制呢?
119 0
Numpy中的广播机制,你确定正确理解了吗?
|
机器学习/深度学习 人工智能 算法
畅快!5000字通俗讲透决策树基本原理
在当今这个人工智能时代,似乎人人都或多或少听过机器学习算法;而在众多机器学习算法中,决策树则无疑是最重要的经典算法之一。这里,称其最重要的经典算法是因为以此为基础,诞生了一大批集成算法,包括Random Forest、Adaboost、GBDT、xgboost,lightgbm,其中xgboost和lightgbm更是当先炙手可热的大赛算法;而又称其为之一,则是出于严谨和低调。实际上,决策树算法也是个人最喜爱的算法之一(另一个是Naive Bayes),不仅出于其算法思想直观易懂(相较于SVM而言,简直好太多),更在于其较好的效果和巧妙的设计。似乎每个算法从业人员都会开一讲决策树专题,那么今天
248 0
畅快!5000字通俗讲透决策树基本原理
大白话直方图均衡
用一句大白话说一下直方图均衡的概念,直方图均衡(histogram equalization)是通过让原图的每个像素点的灰度值通过某个函数变换成另一个值,来提高原图的对比度,具体的函数方程为output = L*T(input)其中output为映射后的灰度值,L为灰度级255,T(r)为灰度值r的累积分布概率,计算方法:灰度值为r及以下的像素点总个数数/总像素点数。
10436 0