使用单例与Android Service通信

4
我的安卓应用运行了一个服务实例,其他应用无法访问该服务。我知道该服务与应用的Activity运行在同一进程中,因为我可以从Activity读写Service类上的静态变量,并且Service可以看到这些变化。
通过静态变量/方法(或更准确的单例)与服务通信比使用Handler或Intent简单得多,后者需要将所有传递的参数转换成Parcelable。似乎这两种通信方式真正设计用于运行在独立进程中的服务,对于进程内服务来说则是不必要的开销。
但我感觉自己可能漏掉了什么重要的东西。如果你知道它只在你的应用中是本地的,那么使用单例来与服务进行通信有什么问题吗?
1个回答

4

在IT技术中,服务和活动之间的通信是使用绑定服务的主要原因之一:您可以构建一个Binder类来定义您的服务和活动之间的接口,并在它们之间传递任何对象,而无需担心对它们进行打包处理(因为绑定器要求两者在同一进程中)。


我明白了。Binder只是让你获取服务的实际实例,这样你就可以直接调用它的方法。这样你就不需要单例来进行调用了。 - mobiledevbrick

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接