Context.BindService 方法

定义

重载

名称 说明
BindService(Intent, IServiceConnection, Bind)

连接到应用程序服务,根据需要创建它。

BindService(Intent, IServiceConnection, Context+BindServiceFlags)

请参阅 bindService(Intent,ServiceConnection,int) 调用 BindServiceFlags.of(long),以获取 BindServiceFlags 对象。

BindService(Intent, Bind, IExecutor, IServiceConnection)

与执行程序一样 #bindService(Intent, ServiceConnection, int) bindService(Intent, ServiceConnection, int) ,用于控制 ServiceConnection 回调。

BindService(Intent, Context+BindServiceFlags, IExecutor, IServiceConnection)

请参阅 bindService(Intent,int,Executor,ServiceConnection) 调用 BindServiceFlags.of(long),以获取 BindServiceFlags 对象。

BindService(Intent, IServiceConnection, Bind)

连接到应用程序服务,根据需要创建它。

[Android.Runtime.Register("bindService", "(Landroid/content/Intent;Landroid/content/ServiceConnection;I)Z", "GetBindService_Landroid_content_Intent_Landroid_content_ServiceConnection_IHandler")]
public abstract bool BindService(Android.Content.Intent service, Android.Content.IServiceConnection conn, Android.Content.Bind flags);
[<Android.Runtime.Register("bindService", "(Landroid/content/Intent;Landroid/content/ServiceConnection;I)Z", "GetBindService_Landroid_content_Intent_Landroid_content_ServiceConnection_IHandler")>]
abstract member BindService : Android.Content.Intent * Android.Content.IServiceConnection * Android.Content.Bind -> bool

参数

service
Intent

标识要连接到的服务。 意向必须指定显式组件名称。

conn
IServiceConnection

在启动和停止服务时接收信息。 这必须是有效的 ServiceConnection 对象;它不能为 null。

flags
Bind

绑定的操作选项。 可以是:<ul><li>0<>#BIND_AUTO_CREATE<>#BIND_DEBUG_UNBIND<>#BIND_NOT_FOREGROUND<>#BIND_ABOVE_CLIENT<>#BIND_ALLOW_OOM_MANAGEMENT<>#BIND_WAIVE_PRIORITY<>#BIND_IMPORTANT<>#BIND_ADJUST_WITH_ACTIVITY<>#BIND_NOT_PERCEPTIBLE<>#BIND_INCLUDE_CAPABILITIES< li/ul>

返回

如果系统正在启动客户端有权绑定到的服务,则为 如果系统找不到服务,或者客户端没有绑定到该服务的权限,则为 。 无论返回值如何,都应稍后调用 #unbindService 以释放连接。

属性

例外

注解

连接到应用程序服务,根据需要创建它。 这定义了应用程序和服务之间的依赖关系。 给定 <的 var>conn</var> 将在创建服务对象时接收服务对象,并告知它是否死亡并重启。 只要调用上下文存在,系统才会考虑该服务。 例如,如果此上下文是已停止的活动,则在恢复活动之前,不需要该服务继续运行。

如果服务不支持绑定,它可能会从其null方法返回android.app.Service#onBind(Intent) onBind()。 如果这样做,则将调用 ServiceConnection ServiceConnection#onNullBinding(ComponentName) onNullBinding() 的方法,而不是 ServiceConnection#onServiceConnected(ComponentName, IBinder) onServiceConnected()

<b>注意:</b> 此方法 <em>无法</em> 从 BroadcastReceiver 组件调用。 一种可用于从 BroadcastReceiver 与服务进行通信的模式是使用包含要发送的命令的参数进行调用 #startService ,服务在执行该命令后调用其 android.app.Service#stopSelf(int) 方法。 有关此图示,请参阅 API 演示应用/服务/服务启动参数控制器。 但是,从已注册 #registerReceiver到的 BroadcastReceiver 中使用此方法是可以的,因为此 BroadcastReceiver 的生存期绑定到另一个对象(注册了它)。

此方法仅接受 int 类型标志,以传入长类型标志,改为调用 #bindService(Intent, ServiceConnection, BindServiceFlags)

Java文档android.content.Context.bindService(android.content.Intent, android.content.ServiceConnection, int)

本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。

另请参阅

适用于

BindService(Intent, IServiceConnection, Context+BindServiceFlags)

请参阅 bindService(Intent,ServiceConnection,int) 调用 BindServiceFlags.of(long),以获取 BindServiceFlags 对象。

[Android.Runtime.Register("bindService", "(Landroid/content/Intent;Landroid/content/ServiceConnection;Landroid/content/Context$BindServiceFlags;)Z", "GetBindService_Landroid_content_Intent_Landroid_content_ServiceConnection_Landroid_content_Context_BindServiceFlags_Handler", ApiSince=34)]
public virtual bool BindService(Android.Content.Intent service, Android.Content.IServiceConnection conn, Android.Content.Context.BindServiceFlags flags);
[<Android.Runtime.Register("bindService", "(Landroid/content/Intent;Landroid/content/ServiceConnection;Landroid/content/Context$BindServiceFlags;)Z", "GetBindService_Landroid_content_Intent_Landroid_content_ServiceConnection_Landroid_content_Context_BindServiceFlags_Handler", ApiSince=34)>]
abstract member BindService : Android.Content.Intent * Android.Content.IServiceConnection * Android.Content.Context.BindServiceFlags -> bool
override this.BindService : Android.Content.Intent * Android.Content.IServiceConnection * Android.Content.Context.BindServiceFlags -> bool

参数

service
Intent

此值不能为 null。

conn
IServiceConnection

此值不能为 null。

flags
Context.BindServiceFlags

此值不能为 null。

返回

请参阅 bindService(Intent,ServiceConnection,int) 调用 BindServiceFlags.of(long),以获取 BindServiceFlags 对象。

属性

注解

请参阅 bindService(Intent,ServiceConnection,int) 调用 BindServiceFlags.of(long),以获取 BindServiceFlags 对象。

Java文档android.content.Context.bindService(android.content.Intent, android.content.ServiceConnection, android.content.Context.BindServiceFlags)

本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。

适用于

BindService(Intent, Bind, IExecutor, IServiceConnection)

与执行程序一样 #bindService(Intent, ServiceConnection, int) bindService(Intent, ServiceConnection, int) ,用于控制 ServiceConnection 回调。

[Android.Runtime.Register("bindService", "(Landroid/content/Intent;ILjava/util/concurrent/Executor;Landroid/content/ServiceConnection;)Z", "GetBindService_Landroid_content_Intent_ILjava_util_concurrent_Executor_Landroid_content_ServiceConnection_Handler", ApiSince=29)]
public virtual bool BindService(Android.Content.Intent service, Android.Content.Bind flags, Java.Util.Concurrent.IExecutor executor, Android.Content.IServiceConnection conn);
[<Android.Runtime.Register("bindService", "(Landroid/content/Intent;ILjava/util/concurrent/Executor;Landroid/content/ServiceConnection;)Z", "GetBindService_Landroid_content_Intent_ILjava_util_concurrent_Executor_Landroid_content_ServiceConnection_Handler", ApiSince=29)>]
abstract member BindService : Android.Content.Intent * Android.Content.Bind * Java.Util.Concurrent.IExecutor * Android.Content.IServiceConnection -> bool
override this.BindService : Android.Content.Intent * Android.Content.Bind * Java.Util.Concurrent.IExecutor * Android.Content.IServiceConnection -> bool

参数

service
Intent

此值不能为 null。

flags
Bind

值为 0 或以下各项的组合:BIND_AUTO_CREATE BIND_DEBUG_UNBIND BIND_NOT_FOREGROUND BIND_ABOVE_CLIENT BIND_ALLOW_OOM_MANAGEMENT BIND_WAIVE_PRIORITY BIND_IMPORTANT BIND_ADJUST_WITH_ACTIVITY BIND_NOT_PERCEPTIBLE BIND_ALLOW_ACTIVITY_STARTS BIND_INCLUDE_CAPABILITIES BIND_SHARED_ISOLATED_PROCESS BIND_PACKAGE_ISOLATED_PROCESS BIND_EXTERNAL_SERVICE

executor
IExecutor

将在执行程序上调用 ServiceConnection 上的回调。 必须为同一 ServiceConnection 实例使用相同的实例。

conn
IServiceConnection

此值不能为 null。

返回

绑定的结果,如中 #bindService(Intent, ServiceConnection, int) bindService(Intent, ServiceConnection, int)所述。

属性

注解

与执行程序一样 #bindService(Intent, ServiceConnection, int) bindService(Intent, ServiceConnection, int) ,用于控制 ServiceConnection 回调。

此方法仅接受 32 位标志,以传入 64 位标志,改为调用 #bindService(Intent, BindServiceFlags, Executor, ServiceConnection)

Java文档android.content.Context.bindService(android.content.Intent, int, java.util.concurrent.Executor, android.content.ServiceConnection)

本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。

适用于

BindService(Intent, Context+BindServiceFlags, IExecutor, IServiceConnection)

请参阅 bindService(Intent,int,Executor,ServiceConnection) 调用 BindServiceFlags.of(long),以获取 BindServiceFlags 对象。

[Android.Runtime.Register("bindService", "(Landroid/content/Intent;Landroid/content/Context$BindServiceFlags;Ljava/util/concurrent/Executor;Landroid/content/ServiceConnection;)Z", "GetBindService_Landroid_content_Intent_Landroid_content_Context_BindServiceFlags_Ljava_util_concurrent_Executor_Landroid_content_ServiceConnection_Handler", ApiSince=34)]
public virtual bool BindService(Android.Content.Intent service, Android.Content.Context.BindServiceFlags flags, Java.Util.Concurrent.IExecutor executor, Android.Content.IServiceConnection conn);
[<Android.Runtime.Register("bindService", "(Landroid/content/Intent;Landroid/content/Context$BindServiceFlags;Ljava/util/concurrent/Executor;Landroid/content/ServiceConnection;)Z", "GetBindService_Landroid_content_Intent_Landroid_content_Context_BindServiceFlags_Ljava_util_concurrent_Executor_Landroid_content_ServiceConnection_Handler", ApiSince=34)>]
abstract member BindService : Android.Content.Intent * Android.Content.Context.BindServiceFlags * Java.Util.Concurrent.IExecutor * Android.Content.IServiceConnection -> bool
override this.BindService : Android.Content.Intent * Android.Content.Context.BindServiceFlags * Java.Util.Concurrent.IExecutor * Android.Content.IServiceConnection -> bool

参数

service
Intent

此值不能为 null。

flags
Context.BindServiceFlags

此值不能为 null。

executor
IExecutor

此值不能为 null。 回调和侦听器事件通过此执行程序调度,提供一种简单的方法来控制使用哪个线程。 若要通过应用程序的主线程调度事件,可以使用 Context.getMainExecutor() 。 否则,请提供调度到相应线程的执行程序。

conn
IServiceConnection

此值不能为 null。

返回

请参阅 bindService(Intent,int,Executor,ServiceConnection) 调用 BindServiceFlags.of(long),以获取 BindServiceFlags 对象。

属性

注解

请参阅 bindService(Intent,int,Executor,ServiceConnection) 调用 BindServiceFlags.of(long),以获取 BindServiceFlags 对象。

Java文档android.content.Context.bindService(android.content.Intent, android.content.Context.BindServiceFlags, java.util.concurrent.Executor, android.content.ServiceConnection)

本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。

适用于