zoukankan      html  css  js  c++  java
  • Android中进程间通信

    绑定的Service用于实现进程间通信的。
    【组件间通信开发流程】
    1. 自定义Service,注册
    2. 自定义接口,用于约定Activity需要调用Service来执行的方法
    3.1 [Service] 自定义内部类,继承Binder,并实现上述接口
    3.2 [Service] 重写onBind(),将内部类的对象作为返回值
    4.1 [Activity] 自定义内部类,实现ServiceConnection
    4.2 [Activity] 在需要绑定Service时,调用bindService()方法实现绑定
    4.3 [Activity] 在内部类的onServiceConnected()方法中,将参数IBinder service强制转换为第2条步骤的接口类型,则可以调用Service中的方法
    4.4 [Activity] 在onDestroy()方法中,调用unbind()方法解除与Service的绑定,该语句应该在super.onDestroy()之前调用
    【进程间通信的开发流程】
    1. 在“服务端”,参考“组件间通信”,创建Service及必要的Service的处理
    2. 在“客户端”准备访问“服务端”的Activity及界面的初始化等
    3. 为“服务端”的Service配置intent-filter,使得该Service可以被其它应用程序激活
    4. 将“服务端”原有的IMusicPlayer.java接口修改为AIDL接口
    5. 将“服务端”的Service中的内部类(InnerBinder)修改为直接继承自IMusicPlayer.Stub
    6. 在“客户端”创建“服务端”的AIDL文件的包名,并把“服务端”的aidl文件复制到“客户端”
    7. 在“客户端”,在InnerServiceConnection的onServiceConnected()方法中,通过IMusicPlayer.Stub.asInterface()方法获取IMusicPlayer的对象

  • 相关阅读:
    数值的整数次方
    二进制中1的个数
    SpingBoot 启动自动给MongoDB建库
    Java 依赖冲突的解决办法
    Http协议
    你被限流了吗?
    LeetCode 783. 二叉搜索树节点最小距离
    Leetcode 687. 最长同值路径
    LeetCode 784. 字母大小写全排列
    LeetCode 面试题 08.06. 汉诺塔问题
  • 原文地址:https://www.cnblogs.com/fighting9527/p/5245308.html
Copyright © 2011-2022 走看看