初识Android中的IPC机制(1)————使用Messenger
2017-03-07 19:08
183 查看
Android开发过程中,IPC(跨进程通信)的技术并不常用,但是在一些特殊情况下确实要用到,而且很重要,比如通过开启一个进程来增加App的可用内存等。同时在面试的过程中也有可能被问到,所以,学习IPC还是很重要的。(因为笔者时间有限,本文仅提供最简单的实现方案,并不深究,兴趣的同学请参考任玉刚大神的《Android开发艺术探索》)
Messenger实现跨进程通信总体来说还是比较简单的,他对AIDL进行了封装,开发者易于使用,有点自然是使用简单,缺点是不能很好的处理多并发,不支持RPC。
下面是实现方法:
创建服务端(运行在其他进程中的Service):
这是完整的服务端写法,当然我们需要在清单文件中声明改Service,同时指明改Service所运行的进程。
代码中,在服务端创建课一个Messenger,传入了一个Handler,在onBinder方法中返回给了客户端。Handler中的handle方法用来处理来自客户端的消息。同时通过客户端传来的Message拿到客户端的Messenger(msg.replyTo),使用这个Messenger来想客户端发送消息。
下面来看客户端的写法:
首先和普通的链接服务操作一样,创建一个ServioceConnect实例,不同的是我们需要在onServiceConnected方法里面获取到服务端的Messenger,然后使用send方法将封装好的Messenge发送到服务端。但是此处要注意,在发送之前,我们要创建一个客户端的Messenger指定给Messenge的replyTo属性,要不然服务端的获取客户端的Messenger时为空。
Android小白不会写Blog,加上时间紧,写博客纯属温习知识,想学习更多建议精度任玉刚大神的《Android开发艺术探索》
Messenger实现跨进程通信总体来说还是比较简单的,他对AIDL进行了封装,开发者易于使用,有点自然是使用简单,缺点是不能很好的处理多并发,不支持RPC。
下面是实现方法:
创建服务端(运行在其他进程中的Service):
这是完整的服务端写法,当然我们需要在清单文件中声明改Service,同时指明改Service所运行的进程。
代码中,在服务端创建课一个Messenger,传入了一个Handler,在onBinder方法中返回给了客户端。Handler中的handle方法用来处理来自客户端的消息。同时通过客户端传来的Message拿到客户端的Messenger(msg.replyTo),使用这个Messenger来想客户端发送消息。
下面来看客户端的写法:
首先和普通的链接服务操作一样,创建一个ServioceConnect实例,不同的是我们需要在onServiceConnected方法里面获取到服务端的Messenger,然后使用send方法将封装好的Messenge发送到服务端。但是此处要注意,在发送之前,我们要创建一个客户端的Messenger指定给Messenge的replyTo属性,要不然服务端的获取客户端的Messenger时为空。
Android小白不会写Blog,加上时间紧,写博客纯属温习知识,想学习更多建议精度任玉刚大神的《Android开发艺术探索》
相关文章推荐
- android ipc机制之Messenger的使用
- Android的IPC机制(四)—— Messenger的使用及源码分析
- 【Android开发艺术探索】IPC机制(三)-使用Messenger进行跨进程通信
- Android的IPC机制—— Messenger的使用及源码分析
- Android的IPC机制(四)—— Messenger的使用及源码分析
- Android IPC机制之Messenger的使用
- Android的IPC机制(四)—— Messenger的使用及源码分析
- Android的IPC机制(四)—— Messenger的使用及源码分析
- Android IPC机制利用Messenger实现跨进程通信
- Android IPC机制(二)用Messenger进行进程间通信【转】
- Android IPC机制(二)用Messenger进行进程间通信
- Android IPC机制之Messenger
- Android的IPC机制(一)——AIDL的使用
- [Android]IPC通信之Messenger的使用方法介绍
- Android IPC机制(二)——利用Messenger实现跨进程通信
- Android IPC机制(五):详解Bundle与“信使”——Messenger
- Android的IPC机制(六)—— BroadcastReceiver的使用
- Android中的IPC机制(3)-Messenger
- Android IPC机制之AIDL的使用
- Android IPC机制(三)在Android Studio中使用AIDL实现跨进程方法调用