使用Bundle进行IPC

四大组建的三大组建(Activity、Service、Receiver)都是支持在Intent中传递Bundle数据,由于Bundle实现了Parcelable接口,所以可以方便地在不同的进程间传输。基于这一点,当我们在一个进程中启动了另一个进程的Activity、Service、Receiver,我们就可以在Bundle中附加我们需要传输给远程进程的信息并通过Intent发送出去。当然,我们传输的数据必须能够被序列化,比如基本类型、实现了Parcelable接口对象、实现了Serializable接口对象以及一些Android支持的特殊对象。


特殊的使用场景

比如A进程在进行一个计算,计算完成后它要启动B进程的一个组件并把计算接口传递给B进程,很遗憾的是这个计算结构不支持放入Bundle中,因此无法通过Intent来传输,这个时候应该怎么办?

我们可以通过Intent来启动进程B的一个Service(比如IntentService)组建,让Service在后台进行计算,计算完毕后再启动B进程中真正要启动的目标组建,由于Service也运行在B进程中,所以目标组建可以直接获取计算结果。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容