Bind Enumeration
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Listet Werte auf, die von mehreren Methoden zurückgegeben werden Bind
Diese Enumeration unterstützt eine bitweise Kombination ihrer Memberwerte.
[System.Flags]
public enum Bind
[<System.Flags>]
type Bind =
- Vererbung
-
Bind
- Attribute
Felder
| Name | Wert | Beschreibung |
|---|---|---|
| ExternalService | -2147483648 | Flag für bindService(Intent, BindServiceFlags, Executor, ServiceConnection) : Der dienst, der gebunden wird, ist ein isolierter, externer Dienst. Dadurch wird der Dienst nicht an das Paket der aufrufenden Anwendung, sondern an das Paket gebunden, in dem der Dienst deklariert wird. Bei Verwendung dieses Flags wird der Code für den gebundenen Dienst unter dem Paketnamen und der Benutzer-ID der aufrufenden Anwendung ausgeführt. Da der Dienst ein isolierter Prozess sein muss, hat er jedoch keinen direkten Zugriff auf die Daten der Anwendung. Mit dieser Kennzeichnung können Anwendungen Dienste bereitstellen, die der App mit dem Dienst zugeordnet sind, anstatt der Anwendung, die den Dienst bereitstellt. Dieses Flag ist NICHT kompatibel mit BindServiceFlags . Wenn Sie BindServiceFlags verwenden müssen, müssen Sie stattdessen BIND_EXTERNAL_SERVICE_LONG verwenden. |
| None | 0 | Gibt an, dass keine Bindungskennzeichnungen festgelegt werden. |
| AutoCreate | 1 | Flag für bindService(Intent, BindServiceFlags, Executor, ServiceConnection) : Erstellen Sie den Dienst automatisch, solange die Bindung vorhanden ist. Beachten Sie, dass während dieser Vorgang den Dienst erstellt, dessen Methode Service.onStartCommand(Intent, int, int) immer noch aufgrund eines expliziten Aufrufs von startService(Intent) aufgerufen wird. Auch wenn dies nicht der Fall ist, erhalten Sie weiterhin Zugriff auf das Dienstobjekt, während der Dienst erstellt wird. Beachten Sie, dass vor Build.VERSION_CODES. ICE_CREAM_SANDWICH , ohne dieses Kennzeichen zu liefern, würde auch beeinflussen, wie wichtig der Prozess des Zieldiensts ist. Wenn diese Einstellung festgelegt ist, war die einzige Möglichkeit, dass sie von einem Dienst ausgelöst wird, in diesem Fall nur dann wichtig, wenn sich diese Aktivität im Vordergrund befindet. Um dieses Verhalten zu erreichen, müssen Sie die neue Kennzeichnung explizit BIND_ADJUST_WITH_ACTIVITY angeben. Aus Kompatibilitätsgründen weisen alte Anwendungen, die nicht angeben, BIND_AUTO_CREATE automatisch die Flags BIND_WAIVE_PRIORITY und BIND_ADJUST_WITH_ACTIVITY für sie festgelegt, um dasselbe Ergebnis zu erzielen. |
| DebugUnbind | 2 | Flag für bindService(Intent, BindServiceFlags, Executor, ServiceConnection) : Include debugging help for mismatched calls to unbind. Wenn dieses Flag festgelegt ist, wird der Aufrufstapel des folgenden unbindService(ServiceConnection)-Aufrufs beibehalten, um gedruckt zu werden, wenn ein später falscher nicht gebundener Aufruf erfolgt. Beachten Sie, dass dazu Informationen über die Bindung aufbewahrt werden müssen, die für die Lebensdauer der App erstellt wurde, was zu einem Leck führt – dies sollte nur für das Debuggen verwendet werden. |
| NotForeground | 4 | Flag for bindService(Intent, BindServiceFlags, Executor, ServiceConnection) : Don't allow this binding to raise the target service's process to the foreground scheduling priority. Sie wird weiterhin auf mindestens die gleiche Speicherpriorität wie der Client ausgelöst (sodass der Prozess in keiner Situation, in der der Client nicht killbar ist), aber für CPU-Planungszwecke kann er im Hintergrund verbleiben. Dies hat nur Auswirkungen auf die Situation, in der der Bindungsclient ein Vordergrundprozess ist und sich der Zieldienst in einem Hintergrundprozess befindet. |
| AboveClient | 8 | Flag für bindService(Intent, BindServiceFlags, Executor, ServiceConnection) : gibt an, dass die Clientanwendungsbindung an diesen Dienst als wichtiger als die App selbst betrachtet. Wenn festgelegt, versucht die Plattform, die App aus dem Arbeitsspeicher zu töten, bevor sie den Dienst tötet, an den er gebunden ist, obwohl dies nicht garantiert ist. |
| AllowOomManagement | 16 | Flag for bindService(Intent, BindServiceFlags, Executor, ServiceConnection) : Allow the process hosting the bound service to go through its normal memory management. Es wird eher wie ein ausgeführter Dienst behandelt, sodass das System den Prozess (vorübergehend) ausdehnt, wenn er nicht genügend Arbeitsspeicher hat oder für eine andere Laune es möglicherweise hat, und aggressiver zu sein, wenn es zu einem Kandidaten wird, der getötet (und neu gestartet) wird, wenn er lange ausgeführt wird. |
| WaivePriority | 32 | Flag für bindService(Intent, BindServiceFlags, Executor, ServiceConnection) : Wirken Sie sich nicht auf die Planungs- oder Speicherverwaltungspriorität des Hostingprozesses des Zieldiensts aus. Ermöglicht die Verwaltung des Dienstprozesses in der LRU-Liste im Hintergrund wie ein regulärer Anwendungsprozess im Hintergrund. |
| Important | 64 | Flag für bindService(Intent, BindServiceFlags, Executor, ServiceConnection) : Dieser Dienst ist für den Client sehr wichtig, daher sollte die Vordergrundprozessebene beim Client angezeigt werden. Normalerweise kann ein Prozess nur von einem Client auf die Sichtbarkeitsebene erhöht werden, auch wenn sich dieser Client im Vordergrund befindet. |
| AdjustWithActivity | 128 | Flag für bindService(Intent, BindServiceFlags, Executor, ServiceConnection) : Wenn eine Bindung aus einer Aktivität erfolgt, lassen Sie zu, dass die Wichtigkeit des Prozesses des Zieldiensts ausgelöst wird, basierend darauf, ob die Aktivität für den Benutzer sichtbar ist, unabhängig davon, ob ein anderes Flag verwendet wird, um die Gesamtanzahl zu verringern, die für den Clientprozess verwendet wird, um sie zu beeinträchtigen. |
| NotPerceptible | 256 | Flag für bindService(Intent, BindServiceFlags, Executor, ServiceConnection) : Wenn die Bindung von einer App, die sichtbar oder vom Benutzer wahrnehmbar ist, verringern Sie die Wichtigkeit des Zieldiensts auf unter der wahrnehmbaren Ebene. Auf diese Weise kann das System den gebundenen Prozess vorübergehend aus dem Speicher entfernen, um Platz für wichtigere benutzerrelevante Prozesse zu schaffen. |
| AllowActivityStarts | 512 | Flag für bindService(Intent, BindServiceFlags, Executor, ServiceConnection) : Wenn die Bindung aus einer sichtbaren App erfolgt, darf der gebundene Dienst eine Aktivität aus dem Hintergrund starten. Dies war das Standardverhalten vor der SDK-Version Build.VERSION_CODES. UPSIDE_DOWN_CAKE . Seitdem hat sich das Standardverhalten geändert, um zu verhindern, dass der gebundene Dienst eine Hintergrundaktivität startet, auch wenn sich die an sie gebundene App im Vordergrund befindet, es sei denn, dieses Flag wird beim Binden angegeben. |
| IncludeCapabilities | 4096 | Flag for bindService(Intent, BindServiceFlags, Executor, ServiceConnection) : If binding from an app that has specific capabilities due to its foreground state such as an activity or foreground service, then this flag will allow the bound app to get the same capabilities, as as it has the required permissions as well. Wenn die Bindung von einer top-App und deren Ziel-SDK-Version Build.VERSION_CODES oder höher ist. R , muss die App explizit BIND_INCLUDE_CAPABILITIES Flag verwenden, um alle Funktionen an den Dienst zu übergeben, damit die andere App während der Verwendung Zugriff haben kann, z. B. Position, Kamera, Mikrofon aus dem Hintergrund. Wenn die Bindung von einer top-App und deren Ziel-SDK-Version unter Build.VERSION_CODES liegt. R , BIND_INCLUDE_CAPABILITIES ist implizit. |
| SharedIsolatedProcess | 8192 | Flag für bindIsolatedService(Intent, BindServiceFlags, String, Executor, ServiceConnection) : Binden des Diensts an einen freigegebenen isolierten Prozess. Wenn Sie dieses Kennzeichen angeben, können mehrere isolierte Dienste in einem einzigen freigegebenen isolierten Prozess ausgeführt werden. Die freigegebene isolierte Prozessinstanz wird durch den instanceName-Parameter in bindIsolatedService(Intent,int,String,Executor,ServiceConnection) identifiziert. Nachfolgende Aufrufe von bindIsolatedService(Intent, BindServiceFlags, String, Executor, ServiceConnection) mit demselben instanceName führen dazu, dass der isolierte Dienst im selben freigegebenen isolierten Prozess gemeinsam gespeichert wird. Beachten Sie, dass der freigegebene isolierte Prozess auf die aufrufende App festgelegt ist; einmal erstellt, kann nur die aufrufende App zusätzliche isolierte Dienste an den freigegebenen Prozess binden. Die Dienste selbst können jedoch aus unterschiedlichen APKs und daher unterschiedlichen Anbietern stammen. Nur Dienste, die das R.attr.allowSharedIsolatedProcess-Attribut auf "true" festlegen, dürfen an einen freigegebenen isolierten Prozess gebunden werden. |
| PackageIsolatedProcess | 16384 | Flag für bindIsolatedService(Intent, BindServiceFlags, String, Executor, ServiceConnection) : Binden Sie den Dienst an einen freigegebenen isolierten Prozess, aber nur mit anderen isolierten Diensten aus demselben Paket, die denselben Prozessnamen deklarieren. Wenn Sie dieses Kennzeichen angeben, können mehrere isolierte Dienste, die im selben Paket definiert sind, in einem einzigen freigegebenen isolierten Prozess ausgeführt werden. Dieser freigegebene isolierte Prozess muss angegeben werden, da dieses Flag nicht mit dem Standardanwendungsprozess funktioniert. Dieses Flag unterscheidet sich von BIND_SHARED_ISOLATED_PROCESS, da es nur Bindungsdienste aus demselben Paket im selben freigegebenen isolierten Prozess zulässt. Dies bedeutet auch, dass der isolierte Freigegebene Paketprozess global ist und nicht auf jede potenzielle aufrufende App festgelegt ist. Die freigegebene isolierte Prozessinstanz wird durch das attribut "android:process" identifiziert, das vom Dienst definiert wird. Dieses Flag kann nicht ohne diesen Attributsatz verwendet werden. Konstanter Wert: 16384 (0x00004000) |
Hinweise
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.