我希望每个应用都能向我的服务发送数据。因此,我需要进程间通信。我能找到的每个页面都建议使用Messenger、AIDL或Intents(BroadcastReceiver)。到目前为止,通过构建一些测试应用程序,我发现BroadcastReceiver非常慢,并且在
然而,LocalSocket似乎非常容易使用(不需要服务,就像Java套接字一样工作)。客户端应用程序可以打开LocalSocket,连接到提供的地址,然后
while(true)
循环中使用多个线程发送消息时可能会丢失消息而没有通知。而AIDL和Messenger不仅实现复杂(需要服务、绑定器等),而且可能会提供奇怪的行为,例如使用oneway关键字时,在使用AIDL时会发生RemoteException(!!!FAILED BINDER TRANSACTION !!!)甚至只是在使用多个线程发送时也会发生异常。我想确保交付是有保障的。当想要确保交付时,是否有使用oneway的原因呢?然而,LocalSocket似乎非常容易使用(不需要服务,就像Java套接字一样工作)。客户端应用程序可以打开LocalSocket,连接到提供的地址,然后
while(true) outputstream.writeObject();
使用LocalSocket是否存在任何缺点呢?因为Android开发者页面说:“一些应用程序尝试使用传统的Linux技术,如网络套接字和共享文件来实现IPC。我们强烈建议您改用Android系统功能进行IPC”,但并未进一步说明。