Android服务:绑定还是启动?

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

  • 线程正在运行时,在服务中调用stopSelf()
  • 如何在Android中的后台运行应用程序?
  • Android服务:过程与不
  • Android:在服务和活动之间传递数据
  • Android:将variables传递给已经运行的服务
  • 如何在中午每天运行一个服务,并在每一次启动
  • GREF在multithreading服务中增加/减less(aidl) - 这意味着什么?
  • 使用AsyncTask在后台服务中添加android进度对话框,得到致命exception
  • 使用startService()来启动它们后将独立运行的服务。 音乐播放器是一个很好的例子。 直到他们调用stopSelf()或者有人调用stopService()

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

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

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

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