在android系统中,跨进程通信依赖Binder机制,上层使用时只需使用AIDL语言,定义接口调用、数据传递。
还可以使用kotlin 高阶函数优化调用,
例如:
private val mListenerList=RemoteCallbackList<IOnBusChangeListener>()
private inline fun remoteCall(call:IOnBusChanageListener.()->Unit){
val num=mListenerList.beginBroadcast()
for (i in 0 until num){
val listener:IOnBusChangeListener = mListenerList.getBroadcastItem(i)
call.invoke(listener)
}
mListenerList.finshBroadcast()
}
有了如上对跨进程调用的封装,我们就可以少写很多代码,使得逻辑更加简洁易读,
调用:
remoteCall{
......
}