Android服务:绑定还是启动?

时间:2012-12-04 22:34:32

标签: android service

在什么情况下我应该启动服务以及在什么情况下绑定服务?例如 - 音乐服务的Android客户端?系统的优先级是否存在差异;是否为任何通用规则;其他什么?

1 个答案:

答案 0 :(得分:20)

startService()用于启动后将独立运行的服务。音乐播放器是一个很好的例子。这些操作一直持续到他们致电stopSelf()或有人致电stopService()

您可以通过来回发送Intent来与正在运行的服务进行通信,但在大多数情况下,您只需启动该服务并让它自行运行。

当服务和客户端通过持久连接来回通信时,请使用bind()。一个很好的例子是导航服务,它将位置更新发送回客户端。粘合剂比意图更难写,但它们确实是这种使用情况的方法。

关于优先级:当进程的所有活动都失去其可见性时,如果该进程托管以onStart()开头的服务,则该进程将成为服务进​​程,否则它将成为< em>后台流程。服务流程的优先级高于后台流程。有关详情,请访问android developer site

如果没有可见活动的服务流程需要更高的优先级(例如真正不应该被打断的音乐播放器),该服务可以调用startForeground()