在什么情况下我应该启动服务以及在什么情况下绑定服务?例如 - 音乐服务的Android客户端?系统的优先级是否存在差异;是否为任何通用规则; 还要别的吗?
Edw*_*alk 20
使用startService()你开始后他们将独立运行的服务.音乐播放器是一个很好的例子.这些运行直到他们打电话stopSelf()或有人打电话stopService().
您可以通过来回发送Intent来与正在运行的服务进行通信,但在大多数情况下,您只需启动该服务并让它自行运行.
bind()当服务和客户端通过持久连接来回通信时使用.一个很好的例子是导航服务,它将位置更新发送回客户端.粘合剂比意图更难写,但它们真的是这个用例的方法.
关于优先级:当进程的所有活动都失去其可见性时,如果该进程托管以启动的服务,则该进程将成为服务进程onStart(),否则它将成为后台进程.服务流程的优先级高于后台流程.在android开发者网站上的更多细节.
如果没有可见活动的服务进程需要更高的优先级(例如,实际上不应该被中断的音乐播放器),则服务可以调用startForeground().