首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >服务还是绑定服务?

服务还是绑定服务?
EN

Stack Overflow用户
提问于 2012-02-14 13:35:52
回答 3查看 6.9K关注 0票数 13

我正在创建一个连接到Android上的XMPP服务器的应用程序。我想保持连接,直到用户注销。

我应该使用常规服务还是绑定服务来保持连接?

欢迎任何提示、建议和有用的信息。

EN

回答 3

Stack Overflow用户

发布于 2014-07-14 00:31:39

我喜欢这样的解释:

启动的服务很容易为从活动到服务的简单单向交互进行编程,然而,它们需要更复杂和特别的编程来与其客户端进行扩展的双向对话。

相比之下,对于更复杂的活动和服务之间的双向交互,绑定服务可能是更好的选择。例如,它们支持双向对话。

所以,正如您所说,如果您想与服务交互,请使用服务。对于启动的服务(或意图服务),您可以做到这一点,只是它需要更复杂的编程。( Douglas Schmidt:https://www.youtube.com/watch?v=cRFw7xaZ_Mg (11'10'')):

这是一个帮助我理解的摘要(感谢Doug):

最后,还有一个对我也有帮助的链接:http://www.techotopia.com/index.php/An_Overview_of_Android_Started_and_Bound_Services

Android启动的服务由其他应用程序组件(如activity,甚至是广播接收器)启动,并且可能会在后台无限期运行,直到服务停止,或者被运行时系统销毁以释放资源。如果启动该服务的应用程序不再处于前台,甚至在最初启动该服务的组件被销毁的情况下,该服务将继续运行

绑定的服务类似于启动的服务,只是启动的服务通常不返回结果或允许与启动它的组件进行交互。另一方面,绑定服务允许启动组件与服务交互并从服务接收结果。

票数 12
EN

Stack Overflow用户

发布于 2012-02-14 14:56:20

绑定服务是客户端-服务器接口中的服务器。绑定服务允许组件(如活动)绑定到服务、发送请求、接收响应,甚至执行进程间通信(IPC)。绑定服务通常仅在为另一个应用程序组件提供服务时存在,并且不会无限期地在后台运行。

如果所有代码都存在于从连接到用户注销的用户的一个活动中,则转到绑定服务

但如果代码存在于多个活动中,请尝试使用服务

票数 5
EN

Stack Overflow用户

发布于 2013-02-26 05:30:48

我发现了两者之间的区别,以及何时使用它。如果您希望与服务交互(例如,发送参数等),请使用绑定服务,它将在onServiceConnected方法中返回服务对象(您可以在其中调用服务中的方法)。您不能与常规服务(来自另一个类)交互

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9272217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档