Android服务:绑定还是启动?

在什么情况下我应该启动服务,并在什么情况下绑定服务? 例如 – 音乐服务的Android客户端? 这个系统的优先级有什么不同?是任何常见的规则; 还要别的吗?

Solutions Collecting From Web of "Android服务:绑定还是启动?"

使用startService()来启动它们后将独立运行的服务。 音乐播放器是一个很好的例子。 直到他们调用stopSelf()或者有人调用stopService()

您可以通过发送Intents来与正在运行的服务进行通信,但大部分情况下,您只需启动该服务并让其自行运行即可。

当服务和客户端将通过持久连接来回通信时,使用bind() 。 一个很好的例子是一个导航服务,它将把位置更新传送回客户端。 粘合剂比意图书写起来要困难得多,但是对于这个用法来说,它们确实是一种方法。

关于优先级:当一个进程的所有活动都失去可见性时,如果进程使用onStart()启动一个服务,则该进程成为一个服务进程 ,否则就成为一个后台进程 。 服务进程比后台进程具有更高的优先级。 在android开发者网站上的更多细节。

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