如果您的服务仅由本地应用程序使用,并且不需要跨进程工作,那么您可以实现自己的Binder类,使您的客户端可以直接访问服务中的公共方法。
但是,假设服务在与客户端相同的进程中运行,则可以使用任何线程安全的结构(如ConcurrentLinkedQueue)来交换数据。
答案 0 :(得分:0)
在Android Binder类的使用中,在可能的消息传递或数据交换解决方案中没有任何意义,但在Android体系结构中,它提供了更高的可用性和安全级别,可以在没有它的情况下得到保证:
Android应用程序员最重要的改进 视图是可以调用远程对象上的方法,就好像它们在本地一样 对象方法。这是通过同步方法调用实现的。因此, 在服务器进程的答复期间阻止调用客户端进程。对于它的优势,客户端不需要提供威胁方法 来自客户端的异步返回消息。
意图附带的另一个功能是意图过滤器。这是一个声明 对于服务或应用程序,其意图由系统转发到此服务或 应用程序。但它不保证所有意图的安全性,因为意图过滤器 可以通过显式意图绕过。最后的结果是,安全依赖 如上所述检查PID和UID。
有关详细信息,请查看此处:Android Binder. Android Interprocess Communication