Context.BindService 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
BindService(Intent, IServiceConnection, Bind) |
連線到應用程式服務,視需要建立它。 |
BindService(Intent, IServiceConnection, Context+BindServiceFlags) | |
BindService(Intent, Bind, IExecutor, IServiceConnection) |
與 |
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)
。
此頁面的部分是根據所建立和共用的工作進行修改,並根據 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
- conn
- IServiceConnection
- flags
- 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
- flags
- Bind
- executor
- IExecutor
ServiceConnection 上的回呼將會在執行程式上呼叫。 必須針對相同的 ServiceConnection 實例使用相同的實例。
- conn
- IServiceConnection
傳回
系結的結果,如 中所述 #bindService(Intent, ServiceConnection, int)
bindService(Intent, ServiceConnection, int)
。
- 屬性
備註
與 #bindService(Intent, ServiceConnection, int) bindService(Intent, ServiceConnection, int)
執行程式相同,可控制 ServiceConnection 回呼。
這個方法只接受 32 位旗標,以改為傳入 64 位旗標 #bindService(Intent, BindServiceFlags, Executor, ServiceConnection)
。
此頁面的部分是根據所建立和共用的工作進行修改,並根據 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
- flags
- Context.BindServiceFlags
- executor
- IExecutor
- conn
- IServiceConnection
傳回
- 屬性