zoukankan      html  css  js  c++  java
  • Bound Service

    目的:作为其它组件的一部分。

    onBind()返回IBinder, 3种定义IBinder的方式:

    1、继承Binder:服务app私有,仅作为后台worker thread,最简单。client直接调用service的public方法。

    2、Messager:可IPC,单线程。service定义一个Handler来handleMessage。Messager中有handler、IBinder属性,把所有client的请求通过messager中的handler放到一个queue中,因此service每次收到一个请求。同时处理多个请求需用AIDL。

      client需要清楚service定义的message类型的规范含义。

      C—S之间通过msg通信,实质使用了AIDL,msg都是基本数据类型。

    3、AIDL:可IPC,可支持多线程请求;把object分解成原始类型,使得操作系统可理解并跨进程。

    客户端实现ServiceConnection,在onServiceConnected()中得到IBinder。

  • 相关阅读:
    kickstart_Round C 2020
    4.26腾讯笔试题
    [jvm][面试]JVM 调优总结
    Django中的Model(操作表)
    C++ 无锁数据结构
    masstree Seastar
    java logAspect
    vimrc
    GopherChina 2018
    RocketMQ
  • 原文地址:https://www.cnblogs.com/toven/p/2611486.html
Copyright © 2011-2022 走看看