我的Android应用运行无法从其他应用访问的服务实例。我知道该服务在应用程序的Activity中运行的过程相同,因为我可以从活动中读取和写入Service类上的静态变量,服务会看到更改。
通过静态变量/方法(或更恰当的单例)与服务进行通信比使用Handler或Intent与它进行通信要简单得多,这需要使所有传递的参数都可以进行。看起来这两种通信方法实际上是为在单独进程中运行的服务而设计的,并且对于进程内服务来说是不必要的开销。
似乎我必须遗漏一些大事。使用单例与服务交谈有什么问题,如果你知道它是你的应用的本地服务?
答案 0 :(得分:3)
在服务和活动之间进行通信是使用bound service的主要原因之一:您可以构建一个Binder类来定义服务和活动之间的接口并传递您想要的任何对象在他们之间,而不必担心parcelling他们(因为绑定器要求两者都在同一个过程)。