• android Broadcast介绍


      在Android中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制。而BroadcastReceiver是对发送出来的Broadcast进行过滤接受并响应的一类组件。
    发送Broadcast和使用BroadcastReceiver过滤接收的过程:
    (1)首先在需要发送信息的地方,把要发送的信息和用于过滤的信息(如Action、Category)装入一个Intent对象,然后通过调用 Context.sendBroadcast()、sendOrderBroadcast()或sendStickyBroadcast()方法,把 Intent对象以广播方式发送出去。
    (2)当Intent发送以后,所有已经注册的BroadcastReceiver会检查注册时的IntentFilter是否与发送的Intent相匹配,若匹配则就会调用BroadcastReceiver的onReceive()方法。所以当我们定义一个BroadcastReceiver的时候,都需要实现onReceive()方法。

    注册BroadcastReceiver有两种方式:

    (1)静态的在AndroidManifest.xml中用<receiver>标签生命注册,并在标签内用<intent-filter>标签设置过滤器。
    (2)动态的在代码中先定义并设置好一个IntentFilter对象,然后在需要注册的地方调Context.registerReceiver()方法,如果取消时就调用 Context.unregisterReceiver()方法。
    如果用动态方式注册的BroadcastReceiver的Context对象被销毁时,BroadcastReceiver也就自动取消注册了。
    另外,如果在使用sendBroadcast()的方法时指定了接收权限,则只有在AndroidManifest.xml中用<uses- permission>标签声明了拥有此权限的BroascastReceiver才会有可能接收到发送来的Broadcast。
    同样,如果在注册BroadcastReceiver时指定了可接收的Broadcast的权限,则只有在包内的AndroidManifest.xml中用<uses-permission>标签声明了,拥有此权限的Context对象所发送的Broadcast才能被这个 BroadcastReceiver所接收。
  • 相关阅读:
    4.终端
    **如何让CI框架支持service层
    *CI框架装载器Loader.php源码分析
    如何在CI中写工具类,在哪个目录写
    ***在PHP语言中使用JSON和将json还原成数组(json_decode()的常见错误)
    DedeCMS常见问题和技巧
    ***Linux系统下如何查看及修改文件读写权限
    ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
    PHP5.2至5.6的新增功能详解
    PHP 5.2、5.3、5.4、5.5、5.6 对比以及功能详解
  • 原文地址:https://www.cnblogs.com/lyricgan88/p/3371304.html
Copyright © 2020-2023  润新知