活页夹类做什么? Android绑定服务中的绑定是什么意思?

问题描述 投票:7回答:1

我对绑定服务完全感到困惑。我的问题是:

  • 绑定是什么意思?
  • 活页夹类做什么?
  • 什么是“返回与服务进行交互的IBinder”?
  • 什么是IBinder对象?
  • onBind()方法如何工作?

这些是有关绑定服务的问题。请详细说明。我已经阅读过文档,但是对我来说仍然不清楚。

android android-service android-binder
1个回答
8
投票

绑定服务:

绑定服务是一种允许应用程序组件通过调用bindService()来建立长期连接的方式与之绑定的服务。

当您希望通过应用程序中的活动和其他组件与服务进行交互,或者通过进程间通信(IPC)将应用程序的某些功能向其他应用程序公开时,请创建绑定服务。

要创建绑定服务,请实现onBind()回调方法以返回IBinder,该IBinder定义了与服务进行通信的接口。然后,其他应用程序组件可以调用bindService()来检索接口并开始在服务上调用方法。该服务仅用于服务与其绑定的应用程序组件,因此,当没有任何组件绑定至该服务时,系统将销毁它。您不需要像通过onStartCommand()启动服务时一样必须停止绑定服务。

IBinder:

要创建绑定服务,必须定义一个接口,该接口指定客户端如何与服务进行通信。服务和客户端之间的此接口必须是IBinder的实现,并且是您的服务必须从onBind()回调方法返回的接口。客户端收到IBinder之后,它可以开始通过该界面与服务进行交互。

onBind():

当另一个组件想要与服务绑定(例如执行RPC)时,系统通过调用bindService()来调用此方法。在此方法的实现中,必须提供一个接口,客户端可以通过返回IBinder使用该接口与服务进行通信。您必须始终实现此方法。但是,如果您不想允许绑定,则应返回null。

© www.soinside.com 2019 - 2024. All rights reserved.