• Broadcast的类型


    两种发送方法

    1.无序广播

          对于多个接收者来说是完全异步的,通常每个接收者都无需等待即可以接收到广播,接收者相互之间不会有影响。对于这种广播,接收者无法终止广播,即无法阻止其他接收者的 接收动作。      

          消息同时到达,不能延迟

           主要代码:
          Intent intent = new Intent(“myBroadcastReceiver”);
          intent.putExtra(“msg”, “这是MainActivity页面发送的广播—-》》”);
          sendBroadcast(intent);

    2. 有序广播

          有序广播比较特殊,它每次只发送到优先级较高的接收者那里,然后由优先级高的接受者再传播到优先级低的接收者那里,优先级高的接收者有能力终止这个广播。可以在广播注册时使用intent-filter里面的android: priority=”xxx”去解决或在java代码中用setPriority(xxx)来设置。消息按照优先级来传递,可以延迟,并且可以拦截

    主要代码:
    Intent intent = new Intent(“myBroadcastReceiver”);
    intent.putExtra(“msg”, “这是MainActivity页面发送的广播—-》》”);

    sendOrderedBroadcast(Intent,permission);// permission可以为null,表明不需要额外的权限,如果不为空,所有接收方必须有这个权限。如果是该自定义的广播接收者发送广播,第二个参数一般为null

           拦截方法 abortBroadcast();
           广播优先级,应该是有序广播才能有效果;
           广播最大的作用 Activity与Service进行通信 ,通知所有的界面。

    对比有序广播和无序广播:
           发现他们的使用方式没什么不同,只是有序广播比无序广播要多一个参数;
           但是它们的作用是非常不同的,无序广播是不可被截断的,每一个广播接收者都可以收到这个无序广播发送的广播信息;而无序广播时候根据优先级数的大小来判断谁先接收到广播信息,并且可以选择是否截断这个广播信息,如果在某个广播接收者截断信息,在它的优先级之下的广播接收者都接收不到广播信息。有序广播才能拦截。

    http://blog.csdn.net/wenzhi20102321/article/details/53127914

    http://www.cnblogs.com/lwbqqyumidi/p/4168017.html

    http://ju.outofmemory.cn/entry/106978

    使用 package manager,可以在运行时 enable 或者 disable 一个静态注册的 receiver

    ComponentName receiver = new ComponentName(context, myReceiver.class);

    PackageManager pm = context.getPackageManager();

    pm.setComponentEnabledSetting(receiver, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);

  • 相关阅读:
    图书管理系统登录界面
    图书管理系统的管理者界面
    图书管理系统-servlet层
    图书管理系统的dao层
    Linux 内核优化
    第十一章 Nginx之服务代理
    第十章 Nginx之LNMP拆分
    第九章 Nginx之LNMP架构
    第八章 Nginx常用模块
    第七章 WEB服务之Nginx
  • 原文地址:https://www.cnblogs.com/genggeng/p/6835959.html
Copyright © 2020-2023  润新知