Android 中的 IPC 方式(一) Bundle 和文件共享

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_29874521/article/details/82624254

1. Bundle

我们知道,四大组件中的三大组件(Activity、Service、BroadcastReceiver)都是支持 Intent 中传递 Bundle 数据的,由于 Bundle 实现了 Parcelable 接口,所以它可以方便的在进程间传输。基于这一点,当我们在一个进程中启动了另一个进程的 Activity、Service 或者 BroadcastReceiver,我肯就可以在 Bundle 中附加我们需要传输给远程进程的信息通过 Intent 发送过去。当然,我们的数据必须能够序列化,

除了传递数据这种典型使用场景,它还有一种特殊的使用场景,比如 A 进程正在进行一个计算,计算完成后,它需要把计算结果传递给 B 进程,可是遗憾的是这个计算结果不支持放入 Bundle 中,因此无法通过 Intent 来传输,这个时候如果我们使用其他 IPC 方式就会略显复杂,可以考虑如下方式:我们通过 Intent 启动进程 B 的一个 Service 组件,让 Service 在后台进行计算,计算完成后,在启动 B 进程中真正要启动的组件,由于 Service 业运行在 B 进程中,所以目标组件就可以直接获取计算结果,这样一来就轻松解决了跨进程的问题。

2. 使用文件共享

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/sinat_29874521/article/details/82624254