天天看点

android 引入广播的用意

面试的时候有可能面试官会问你这样的问题,android引入广播的用意是什么?下面总结几点,希望对大家有所帮助,谢谢!

        第一    从MVC的角度考虑(应用程序内)

               其实回答这个问题的时候还可以这样问,android为什么要有那4大组件,现在的移动开发模型基本上也是照搬的web那一套MVC架构,我相   信做过J2EE开发的对这个一定不陌生吧,只不过是改了点嫁妆而已。android的四大组件本质上就是为了实现移动或者说嵌入式设备上的 MVC架构,它们之间有时候是一种相互依存的关系,有时候又是一种补充关系,引入广播机制可以方便几大组件的信息和数据交互。

   第二  程序间互通消息(例如在自己的应用程序内监听系统来电)

  第三  效率上(参考UDP的广播协议在局域网的方便性)

  第四  设计模式上(反转控制的一种应用,类似监听者模式)

总结一下几点:

    1.在Android 中如果要发送一个广播必须使用sendBroadCast 向系统发送对其感兴趣的广播接收器中。 

    2.使用广播必须要有一个intent 对象必设置其action动作对象 

    3.使用广播必须在配置文件中显式的指明该广播对象

    4.每次接收广播都会重新生成一个接收广播的对象 

    5.在BroadCast 中尽量不要处理太多逻辑问题,建议复杂的逻辑交给Activity 或者 Service 去处理 

     Android广播机制(两种注册方法) 可以参考另一篇博客讲解

     在android下,要想接受广播信息,那么这个广播接收器就得我们自己来实现了,我们可以继承BroadcastReceiver,就可以有一个广播接受器了。有个接受器还不够,我们还得重写BroadcastReceiver里面的onReceiver方法,当来广播的时候我们要干什么,这就要我们自己来实现,不过我们可以搞一个信息防火墙