zoukankan      html  css  js  c++  java
  • 广播的注册、发送和接收过程

    --摘自《Android进阶解密》

    一。广播的注册过程(动态注册)

    1)静态注册在应用安装时由PackageManagerService来完成注册过程

    2)IIntentReceiver是一个Binder接口,用于广播的跨进程的通信,它在LoadedApk.ReceiverDispatcher.InnerReceiver中实现

    3)注册广播是一个跨进程过程,需要具有跨进程的通信功能的IIntentReceiver

    4)粘性广播是存储在AMS中的

    5)ReceiverList继承自ArrayList,用来存储广播接收者

    6)AMS接收到广播时就可以从mReceiverResolver中找到对应的广播接收者了,从而达到了注册广播的目的

    二。广播的发送和接收过程

    第一步。ContextImpl到AMS的调用过程

    第二步。AMS到BroadcastReceiver的调用过程

    1)IIntentReceiver和IActivityManager一样,都使用了AIDL来实现进程间通信。InnerReceiver继承自IIntentReceiver.Stub,是Binder通信的服务器端,IIntentReceiver则是Binder通信的客户端、InnerReceiver在本地的代理,它的具体实现就是InnerReceiver

    欢迎关注我的微信公众号:安卓圈

  • 相关阅读:
    6
    5
    4
    3
    Hive常用的DCL(Data Control Language)数据操作
    Hive常用的DQL(Data Query Language)数据操作
    Hive常用的DML(Data Manipulation Language)数据操作
    Hive常用的DDL(Data Definition Language)数据操作
    Hive常用的数据类型概述
    Hive的JDBC环境部署
  • 原文地址:https://www.cnblogs.com/anni-qianqian/p/10179007.html
Copyright © 2011-2022 走看看