AIDL总结

作者: lee_3do | 来源:发表于2015-11-03 14:08 被阅读90次
  1. 新建AIDL文件,aidl文件会自动生成包含stub类的文件

  2. 写一个service类,内部类binder实现类继承stub,实现aidl中的方法(调用service内方法);service类内实现onBind方法,返回这个内部binder类的实例;配置service在AndroidManifest中,service中配置process属性,配置类似:service,程序运行时将为这个service新启动进程.

需要注意的是,Manifest中service的intent-filter中的写法,目前高版本的SDK不允许使用模糊的filter写法来启动service(防止被其它应用启动),建议目前不配置intent-filter,直接使用类名来启动service

  1. 连接启动service的客户端,首先需要实现一个ServiceConnection,在这个类的onServiceConnected方法中,保存返回的binder:

    @Override
    public void onServiceConnected(ComponentName name, IBinder service) {
        mImServiceBinder = IMServiceB.Stub.asInterface(service);
    }
    

然后是绑定service:bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
绑定之后,onServiceConnected会被调用,我们就获得了跟service交互的binder.

需要注意的是,startService和bindService创建出来的service的生命周期是不同的.
startService启动的服务的生命周期跟客户端无关(即使后面再次被bind),而通过bindService启动的服务一旦所有的客户端都unbind之后,将自动销毁.已经被start的服务再次被调用start,将不会调用onCreate,但是会再次调用onStartCommand方法.

4.对于复杂的数据传递,需要数据类实现Parcelable接口(自定义序列化).

5.一个程序启动多个远程服务进程,每个进程都有自己的applicationContext,除了通过AIDL方法,两个进程不能通过其他方法共享数据(数据库可以,sharedPreferences应该也可以?).

相关文章

  • AIDL 双向调用的注意事项

    之前没有实战用过AIDL,最近用的时候稍微麻烦了一些。 预警:本文不适合做AIDL教程... 总结如下: AIDL...

  • AIDL总结

    新建AIDL文件,aidl文件会自动生成包含stub类的文件 写一个service类,内部类binder实现类继承...

  • AIDL使用与踩坑部分总结

    整理一下AIDL相关的部分信息,也算是总结一下重新回顾一下知识吧~ 什么是AIDL? AIDL(Android I...

  • 全网首发的论文总结报告!TJ-AIDL论文翻译&总结

    TJ-AIDL论文翻译&总结 论文:《Transferable Joint Attribute-Identity ...

  • Service aidl 总结

    Service两种启动方式 startService 启动流程oncreate->onStartCommand->...

  • AIDL 简单总结

    纯粹是个人学习总结,如有不对的地方请吐槽。 AIDL文件中支持的数据类型包括:

  • AIDL要点总结

    1.in、out、inout、oneway关键字 定向tag in修饰的的参数,经序列化后传递服务端,服务端反序列...

  • AIDL使用总结

    服务端进程: 1:创建AIDL文件如xxx.aidl 2:在接口中自定义方法,如果有bean则实例化改bean实体...

  • Service AIDL总结

    基于Android Studio。 服务端 1. 创建aidl文件 示例 2. 创建Service文件。 新建为普...

  • AIDL简单总结

    1.AIDL简介 AIDL是Android Interface Definition Language的简写,即A...

网友评论

    本文标题:AIDL总结

    本文链接:https://www.haomeiwen.com/subject/uapqhttx.html