25

什么情况下应该启动Service,什么情况下绑定Service?例如 - 音乐服务的 android 客户端?系统的优先级是否有任何差异;是否有共同的规则;还要别的吗?

4

1 回答 1

26

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

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

bind()当服务和客户端将通过持久连接来回通信时使用。一个很好的例子是导航服务,它将位置更新传输回客户端。Binder 比 Intent 更难编写,但它们确实是这个用例的必经之路。

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

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

于 2012-12-04T23:36:04.650 回答