Context.BindService 方法

定義

多載

BindService(Intent, IServiceConnection, Bind)

連線到應用程式服務,視需要建立它。

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

#bindService(Intent, ServiceConnection, int) bindService(Intent, ServiceConnection, int) 執行程式相同,可控制 ServiceConnection 回呼。

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

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 < li ><#BIND_NOT_FOREGROUND<#BIND_WAIVE_PRIORITY>><#BIND_ALLOW_OOM_MANAGEMENT#BIND_IMPORTANT><#BIND_ABOVE_CLIENT<>>>#BIND_NOT_PERCEPTIBLE><<>#BIND_INCLUDE_CAPABILITIES><<#BIND_AUTO_CREATE#BIND_DEBUG_UNBIND<#BIND_ADJUST_WITH_ACTIVITY /ul>

傳回

true 如果系統正在啟動用戶端有權系結的服務,則為 ; false 如果系統找不到服務,或用戶端沒有系結至服務的許可權,則為 。 不論傳回值為何,您稍後都應該呼叫 #unbindService 以釋放連接。

屬性

例外狀況

備註

連線到應用程式服務,視需要建立它。 這會定義應用程式與服務之間的相依性。 給定 < 的 var > conn < /var > 會在建立服務物件時收到,並告知它是否要結束並重新啟動。 只要呼叫內容存在,系統才會將服務視為必要。 例如,如果此內容是已停止的活動,服務將不需要繼續執行,直到活動繼續為止。

如果服務不支援系結,它可能會從其 android.app.Service#onBind(Intent) onBind() 方法傳回 null 。 如果是,則會叫用 ServiceConnection 的 ServiceConnection#onNullBinding(ComponentName) onNullBinding() 方法, ServiceConnection#onServiceConnected(ComponentName, IBinder) onServiceConnected() 而不是 。

<p class=「note」 >< b > Note: < /b > 這個方法 < em > 無法 <> 從 BroadcastReceiver 元件呼叫。 您可以使用的模式從 BroadcastReceiver 與服務進行通訊,就是使用包含要傳送之命令的引數進行呼叫 #startService ,而服務在執行該命令時呼叫其 android.app.Service#stopSelf(int) 方法。 如需此範例,請參閱 API 示範 App/Service/服務啟動引數控制器。 不過,從已向 註冊 #registerReceiver 的 BroadcastReceiver 使用此方法是好的,因為此 BroadcastReceiver 的存留期系結至另一個物件, (註冊它的物件) 。

這個方法只接受 int 類型旗標,以傳入長型別旗標,請改為呼叫 #bindService(Intent, ServiceConnection, BindServiceFlags)

android.content.Context.bindService(android.content.Intent, android.content.ServiceConnection, int) JAVA 檔。

此頁面的部分是根據所建立和共用的工作進行修改,並根據 2.5 屬性授權中所述的詞彙來使用。

另請參閱

適用於

BindService(Intent, IServiceConnection, Context+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

傳回

屬性

適用於

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
flags
Bind
executor
IExecutor

ServiceConnection 上的回呼將會在執行程式上呼叫。 必須針對相同的 ServiceConnection 實例使用相同的實例。

傳回

系結的結果,如 中所述 #bindService(Intent, ServiceConnection, int) bindService(Intent, ServiceConnection, int)

屬性

備註

#bindService(Intent, ServiceConnection, int) bindService(Intent, ServiceConnection, int) 執行程式相同,可控制 ServiceConnection 回呼。

這個方法只接受 32 位旗標,以改為傳入 64 位旗標 #bindService(Intent, BindServiceFlags, Executor, ServiceConnection)

android.content.Context.bindService(android.content.Intent, int, java.util.concurrent.Executor, android.content.ServiceConnection) JAVA 檔。

此頁面的部分是根據所建立和共用的工作進行修改,並根據 2.5 屬性授權中所述的詞彙來使用。

適用於

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

[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
executor
IExecutor

傳回

屬性

適用於