作家
登录

Android中的IPC机制

作者: 来源: 2017-05-16 09:16:15 阅读 我要评论

"receive msg from Service\t" + msg.getData().getString("reply")); 
  •                           break; 
  •                       default
  •                           super.handleMessage(msg); 
  •                   } 
  •               } 
  •           } 
  •  
  •           @Override 
  •           protected void onDestroy() { 
  •               super.onDestroy(); 
  •               unbindService(mServiceConnection); 
  •           } 
  •       ```  
  • 【编辑推荐】

    1. Android分辨率适配小试牛刀
    2. 在没有Kotlin的世界与Android共舞
    3. 如安在Android App上高效显示位图
    4. Android动态代劳以及应用动态代劳实现ServiceHook
    5. Android仿华为气象绘制刻度盘
    【义务编辑:枯木 TEL:(010)68476606】

    在Messenger中进行数据传递必须将数据放入Message中,而Messenger和Message都是实现了Parcelable接口,是以可以跨过程传输。实际上:经由过程Messenger来传输Message,Message中能应用的载体只有what、arg1、arg2、Bundle已经replyTo。Message的另一个字段object在同一过程中是很实用的,然则在过程间通信时刻,非体系的Parcelable对象无法经由过程object字段来传输。但可以实用Bundle,Bundle可以支撑大年夜量的数据类型。

    应用AIDL

    - Map 只支撑HashMap ,琅绫擎每个元素必须可以或许被AIDL支撑,包含key 和value

    用Messenger来进行过程间通信时是以串行的方法处理客户端发来的消息,如不雅大年夜量的消息同时发送到办事端,办事端仍然只能一个个处理,如不雅大年夜量的并发请求,那么竽暌姑Messenger就不太合适了。同时Messenger的感化主如果为了传递消息,很多时刻我们可能须要跨过程调用办事端办法,这个时刻我们就可以用AIDL了。

    办事端起重要创建一个Service用来监听客户端的连接,然后创建一个AIDL文件,将裸露给客户端的接口在这个AIDL文件中声明,最后在Service中实现这个AIDL文件即可。

    • 客户端

    起首绑定办事端的Service,绑定成功后,将办事端返回的Binder对象转成AIDL接口所属的类型,接着就可声调用AIDL中的办法。

    • AIDL接口的创建
    1. // IBookManager.aidl 
    2.  
    3. com.example.xiahao.myapplication; 
    4.  
    5. // Declare any non-default types here with import statements 
    6. import com.example.xiahao.myapplication.Book; 
    7. import com.example.xiahao.myapplication.IOnNewBookArrivedListener; 
    8.  
    9. interface IBookManager { 
    10.  
    11.      List<Book> getBookList(); 
    12.      void addBook(in Book book); 
    13.  

    在AIDL文件中,并不是所有的类型都支撑的,支撑的类型如下:

    - 根本数据类型(int 、long 、char、 boolean 、double等);

    - string 和CharSequence

    1. private static final String TAG = "MessengerService"

        推荐阅读

        央行成立金融科技委员会,用人工智能技术加强监管

      中国人平易近银行宣布他们在近期成立了金融科技(FinTech)委员会。金融科技是技巧驱动的金融立异,为金融成长注入了新的活力,也给金融安然带来了新挑衅。中国人平易近银行将组织深刻研究金>>>详细阅读


      本文标题:Android中的IPC机制

      地址:http://www.17bianji.com/lsqh/35226.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)