我对绑定服务完全感到困惑。我的问题是:
这些是有关绑定服务的问题。请详细说明。我已经阅读过文档,但是对我来说仍然不清楚。
绑定服务:
绑定服务是一种允许应用程序组件通过调用bindService()来建立长期连接的方式与之绑定的服务。
当您希望通过应用程序中的活动和其他组件与服务进行交互,或者通过进程间通信(IPC)将应用程序的某些功能向其他应用程序公开时,请创建绑定服务。
要创建绑定服务,请实现onBind()回调方法以返回IBinder,该IBinder定义了与服务进行通信的接口。然后,其他应用程序组件可以调用bindService()来检索接口并开始在服务上调用方法。该服务仅用于服务与其绑定的应用程序组件,因此,当没有任何组件绑定至该服务时,系统将销毁它。您不需要像通过onStartCommand()启动服务时一样必须停止绑定服务。
IBinder:
要创建绑定服务,必须定义一个接口,该接口指定客户端如何与服务进行通信。服务和客户端之间的此接口必须是IBinder的实现,并且是您的服务必须从onBind()回调方法返回的接口。客户端收到IBinder之后,它可以开始通过该界面与服务进行交互。
onBind():
当另一个组件想要与服务绑定(例如执行RPC)时,系统通过调用bindService()来调用此方法。在此方法的实现中,必须提供一个接口,客户端可以通过返回IBinder使用该接口与服务进行通信。您必须始终实现此方法。但是,如果您不想允许绑定,则应返回null。