語言

Bind 列舉

定義

列舉由多種方法返回的值 Bind

此列舉支援其成員值的位元組合。

[System.Flags]
public enum Bind
[<System.Flags>]
type Bind = 
繼承
Bind
屬性

欄位

名稱 Description
ExternalService -2147483648

bindService(Intent, BindServiceFlags, Executor, ServiceConnection) 標誌:被綁定的服務是一個獨立的外部服務。 這會將服務綁定到呼叫應用程式的套件中,而非服務宣告的套件。 使用此旗標時,綁定服務的程式碼會以呼叫應用程式的套件名稱與使用者 ID 執行。 但因為服務必須是隔離程序,無法直接存取應用程式的資料。 此旗標的目的是讓應用程式能夠提供歸因於使用該服務的應用程式的服務,而非應用程式提供服務。 此旗標與 BindServiceFlags 不相容。 如果你需要使用 BindServiceFlags,必須改用 BIND_EXTERNAL_SERVICE_LONG。

None 0

規定不設定任何綁定標誌。

AutoCreate 1

Flag for bindService(Intent, BindServiceFlags, Executor, ServiceConnection):只要綁定存在,就會自動建立服務。 請注意,雖然這會建立服務,但其 Service.onStartCommand(Intent, int, int) 方法仍僅會因明確呼叫 startService(Intent) 而被呼叫。 即使沒有這個,這仍然讓你在服務建立過程中存取服務物件。 請注意,在Build.VERSION_CODES之前。ICE_CREAM_SANDWICH,若未提供此旗標,也會影響系統對目標服務流程重要性的重視程度。 設定後,唯一能提升的方法是從服務綁定,這時只有該活動在前景時才重要。 現在要達成此行為,你必須明確提供新的旗標BIND_ADJUST_WITH_ACTIVITY。 為了相容性,沒有指定BIND_AUTO_CREATE的舊應用程式會自動BIND_WAIVE_PRIORITY並BIND_ADJUST_WITH_ACTIVITY設定旗標,以達到相同的效果。

DebugUnbind 2

綁定服務旗標(Intent, BindServiceFlags, Executor, ServiceConnection):包含針對解綁不匹配呼叫的除錯協助。 當此標誌被設定時,下一個 unbindService(ServiceConnection) 呼叫的呼叫堆疊會被保留,若後來有錯誤的解綁呼叫,則會被列印出來。 請注意,這樣做需要保留綁定的資訊直到應用程式的整個生命週期,導致洩漏——這只應用於除錯。

NotForeground 4

bindService(Intent, BindServiceFlags, Executor, ServiceConnection) 的旗標:不要讓這個綁定將目標服務的程序提升到前景排程優先權。 它仍會被提升至與用戶端相同的記憶體優先權(以確保在用戶端無法被殺時,程序不會被終止),但為了 CPU 排程目的,可能會讓它留在背景。 這只在綁定客戶端是前景程序,目標服務處於背景程序時才會受到影響。

AboveClient 8

Flag for bindService(Intent, BindServiceFlags, Executor, ServiceConnection) : 表示綁定此服務的客戶端應用程式認為該服務比應用程式本身更重要。 設定後,平台會嘗試讓記憶體外殺手先終止應用程式,避免它終止綁定的服務,但這並不保證一定成功。

AllowOomManagement 16

綁定服務旗標(Intent, BindServiceFlags, Executor, ServiceConnection):允許承載綁定服務的程序進行其正常的記憶體管理。 它會被當作一個正在運行的服務來處理,允許系統在記憶體不足或其他臨時需求時(暫時)刪除該程序,並且如果長時間運行,系統會更積極地讓它成為可能被終止(並重新啟動)的候選程序。

WaivePriority 32

Flag for bindService(Intent, BindServiceFlags, Executor, ServiceConnection):不會影響目標服務託管程序的排程或記憶體管理優先權。 允許服務流程像一般應用流程一樣,在背景 LRU 清單上管理。

Important 64

Flag for bindService(Intent, BindServiceFlags, Executor, ServiceConnection):此服務對用戶端非常重要,因此當用戶端在 Foreground Process 層級時,應將其帶到前台。 通常,一個程序只能由客戶端提升到可見層級,即使該客戶端位於前景。

AdjustWithActivity 128

綁定服務旗標(Intent, BindServiceFlags, Executor, ServiceConnection):若綁定活動,允許根據該活動是否對使用者可見來提升目標服務的程序重要性,無論是否使用其他旗標來降低客戶端程序整體重要性的影響。

NotPerceptible 256

綁定服務(Intent, BindServiceFlags, Executor, ServiceConnection)的標記:若綁定來自可見或使用者可察覺的應用程式,則將目標服務的重要性降至可感知以下。 這讓系統能(暫時)從記憶體中刪除綁定的程序,為更重要的使用者可感知程序騰出空間。

AllowActivityStarts 512

綁定服務(Intent, BindServiceFlags, Executor, ServiceConnection)的標記:若綁定來自可見的應用程式,綁定服務可從背景啟動活動。 這是 SDK 版本 Build.VERSION_CODES 之前的預設行為。UPSIDE_DOWN_CAKE。 從那時起,預設行為改變為不允許綁定服務啟動背景活動,即使綁定的應用程式位於前景,除非綁定時指定此標誌。

IncludeCapabilities 4096

bindService(Intent, BindServiceFlags, Executor, ServiceConnection) 的標記:如果綁定來自具有特定功能(如活動或前景服務)的應用程式,則此標記將允許綁定應用程式獲得相同功能,只要它擁有必要的權限。 如果從頂尖應用程式綁定及其目標 SDK 版本的綁定達到或高於 Build.VERSION_CODES。R 中,應用程式需要明確使用 BIND_INCLUDE_CAPABILITIES 標誌將所有功能傳給服務,讓另一個應用程式在使用時能從背景存取位置、攝影機、麥克風等。 如果頂尖應用程式的綁定和目標 SDK 版本低於 Build.VERSION_CODES。R , BIND_INCLUDE_CAPABILITIES 是隱含的。

SharedIsolatedProcess 8192

Flag for bindIsolatedService(Intent, BindServiceFlags, String, Executor, ServiceConnection):將服務綁定為共享的隔離程序。 指定此標誌允許多個獨立服務在單一共享隔離程序中同時運行。 共享的隔離程序實例由 bindIsolatedService(Intent, int, String, Executor, ServiceConnection) 中的 instanceName 參數來識別。 後續呼叫 bindIsolatedService(Intent、BindServiceFlags、String、Executor、ServiceConnection)且使用相同 instanceName 時,該孤立服務會在同一共享隔離程序中共置。 請注意,共享的隔離程序是針對呼叫應用程式的範圍;一旦建立,只有呼叫應用程式能將其他獨立服務綁定到共享程序中。 然而,這些服務本身可能來自不同的 APK,因此也可能是不同的供應商。 只有將 R.attr.allowSharedIsolatedProcess 屬性設為 true 的服務,才被允許綁定到共享的隔離程序中。

PackageIsolatedProcess 16384

Flag for bindIsolatedService(Intent, BindServiceFlags, String, Executor, ServiceConnection):將服務綁定為共享的隔離程序,但僅限於同一套件中宣告相同程序名稱的其他孤立服務。 指定此標誌可允許同一套件中定義的多個隔離服務在單一共享隔離程序中同時執行。 必須指定這個共享隔離程序,因為此旗標無法與預設的應用程式程序相容。 此旗標與 BIND_SHARED_ISOLATED_PROCESS 不同,因為它只允許在同一個共享隔離程序中綁定同一套件的服務。 這也代表共享套件的隔離程序是全域的,且不會針對每個潛在呼叫應用程式進行範圍限制。 共享的孤立程序實例由服務定義的「android:process」屬性來識別。 此標誌若未設定此屬性,無法使用。 恆定值:16384(0x00004000)

備註

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於