onBind()
方法的“bind”操作与调用onStartCommand()
有何不同?
onStartCommand()
当另一个组件(如活动)通过调用
startService()
请求启动服务时,系统调用此方法。onBind()
当另一个组件希望与服务绑定(例如执行rpc)时,系统通过调用
bindService()
来调用此方法。我想写一个聊天客户端服务,接收来自多个用户的消息。哪个功能更合适?
最佳答案
第一个(onStartCommand()
)在您的Service
开始工作时调用。onCreate()
已经完成,准备开始做需要做的事情。
第二个(onBind()
)在另一个线程注册以连接到服务以便它们可以通信时调用。您可以在这里配置或设置通信方式,例如接口验证或调用注册活动。
绑定允许您将服务绑定到活动的生命周期。如果活动完成,则允许释放服务,并且服务本身可以完成。只要还有东西绑在上面,这项服务就会持续下去。