345丶
2020-04-08 10:08
在删除监听的时候删除不了,是因为在跨进程的时候对象被重新反序列化了。但是在添加监听的时候也会反序列化,会重新生成一个对象,为什么还会回调到主进程呢?求解答
首先你这是两个问题,之所以用arraylist不行,是因为arraylist只是简单根据元素是否相等去增加删除,所以由于序列化的问题前后已经不是一个对象了,那么自然删不掉,而用RemoteCallbackList可以,是因为内部使用的Ibinder来唯一标识的,所以可以删掉,而后续也是在此基础上,remote进程调用了主进程的消息接收服务。而消息类也加了in关键字,所以对象进行了写入的操作。最后主进程才打印了remote进程传的消息
Android实现跨进程通信
5923 学习 · 14 问题
相似问题