添加的消息监听经过反序列化后为啥还会回调到主进程

来源:4-7 AIDL实现IPC通信-6

345丶

2020-04-08 10:08

在删除监听的时候删除不了,是因为在跨进程的时候对象被重新反序列化了。但是在添加监听的时候也会反序列化,会重新生成一个对象,为什么还会回调到主进程呢?求解答

写回答 关注

1回答

  • weixin_慕用2546013
    2022-01-16 03:46:32

    首先你这是两个问题,之所以用arraylist不行,是因为arraylist只是简单根据元素是否相等去增加删除,所以由于序列化的问题前后已经不是一个对象了,那么自然删不掉,而用RemoteCallbackList可以,是因为内部使用的Ibinder来唯一标识的,所以可以删掉,而后续也是在此基础上,remote进程调用了主进程的消息接收服务。而消息类也加了in关键字,所以对象进行了写入的操作。最后主进程才打印了remote进程传的消息

Android实现跨进程通信

快速掌握Android中进程间通信的开发和底层原理。

5923 学习 · 14 问题

查看课程

相似问题