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的对象

  • 相关阅读:
    AcWing 1027. 方格取数 dp
    AcWing 1014. 登山 dp
    acwing 482. 合唱队形 dp
    LeetCode 1463. 摘樱桃II dp
    LeetCode 100. 相同的树 树的遍历
    LeetCode 336. 回文对 哈希
    LeetCode 815. 公交路线 最短路 哈希
    算法问题实战策略 DARPA大挑战 二分
    算法问题实战策略 LUNCHBOX 贪心
    AcWing 1100. 抓住那头牛 BFS
  • 原文地址:https://www.cnblogs.com/fighting9527/p/5245308.html
Copyright © 2011-2022 走看看