我的 Android 应用程序运行一个无法从其他应用程序访问的服务实例。我知道该服务与应用程序的 Activity 在同一进程中运行,因为我可以从 Activity 读取和写入 Service 类上的静态变量,并且该服务可以看到更改。
通过静态变量/方法(或更恰当的单例)与服务通信比使用 Handler 或 Intent 与它通信要简单得多,这需要使所有传递的参数都可分包。看起来这两种通信方式真的是为运行在单独进程中的服务而设计的,对于进程内服务来说是不必要的开销。
看来我一定漏掉了什么大东西。如果您知道服务在您的应用程序本地,那么使用单例与服务对话有什么问题?
最佳答案
服务和 Activity 之间的通信是使用 bound service 的主要原因之一。 : 你可以建立一个 Binder类定义了您的服务和 Activity 之间的接口(interface),并在它们之间传递您想要的任何对象,而不必担心将它们打包(因为 Binder 要求两者在同一进程中)。
关于android - 使用单例与 Android 服务对话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25026248/