Context.StartService(Intent) Methode
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.
Fordern Sie an, dass ein bestimmter Anwendungsdienst gestartet wird.
[Android.Runtime.Register("startService", "(Landroid/content/Intent;)Landroid/content/ComponentName;", "GetStartService_Landroid_content_Intent_Handler")]
public abstract Android.Content.ComponentName? StartService(Android.Content.Intent? service);
[<Android.Runtime.Register("startService", "(Landroid/content/Intent;)Landroid/content/ComponentName;", "GetStartService_Landroid_content_Intent_Handler")>]
abstract member StartService : Android.Content.Intent -> Android.Content.ComponentName
Parameter
- service
- Intent
Gibt den Dienst an, der gestartet werden soll. Die Absicht muss vollständig explizit sein (Geben Sie einen Komponentennamen an). Zusätzliche Werte können in den Intent-Extras enthalten sein, um Argumente zusammen mit diesem spezifischen Startaufruf zu liefern.
Gibt zurück
Wenn der Dienst gestartet wird oder bereits ausgeführt wird, wird der ComponentName tatsächliche Dienst zurückgegeben, der gestartet wurde. Andernfalls wird null zurückgegeben, wenn der Dienst nicht vorhanden ist.
- Attribute
Ausnahmen
Hinweise
Fordern Sie an, dass ein bestimmter Anwendungsdienst gestartet wird. Die Absicht sollte entweder den vollständigen Klassennamen einer bestimmten Dienstimplementierung enthalten, die gestartet werden soll, oder einen bestimmten Paketnamen, der als Ziel verwendet werden soll. Wenn die Absicht weniger angegeben ist, protokolliert sie eine Warnung dazu. In diesem Fall kann jeder der mehreren übereinstimmenden Dienste verwendet werden. Wenn dieser Dienst noch nicht ausgeführt wird, wird er instanziiert und gestartet (erstellen Sie bei Bedarf einen Prozess dafür); wenn sie ausgeführt wird, wird sie weiterhin ausgeführt.
Jeder Aufruf dieser Methode führt zu einem entsprechenden Aufruf der Methode des Zieldiensts android.app.Service#onStartCommand , wobei hier die <var>intent</var> angegeben ist. Dies bietet eine bequeme Möglichkeit, Aufträge an einen Dienst zu übermitteln, ohne eine Bindung und einen Aufruf an die Schnittstelle ausführen zu müssen.
Durch die Verwendung von startService() wird die standardmäßige Dienstlebensdauer außer Kraft gesetzt, die von #bindService: sie erfordert, dass der Dienst bis zum Aufruf ausgeführt #stopService wird, unabhängig davon, ob clients mit ihm verbunden sind. Beachten Sie, dass Aufrufe an startService() nicht geschachtelt werden: Unabhängig davon, wie oft Sie startService() aufrufen, wird ein einzelner Aufruf #stopService beendet.
Das System versucht, dienste so weit wie möglich weiter auszuführen. Die einzige Zeit, zu der sie beendet werden sollten, ist, wenn die aktuelle Vordergrundanwendung so viele Ressourcen verwendet, dass der Dienst getötet werden muss. Wenn Fehler im Prozess des Diensts auftreten, wird sie automatisch neu gestartet.
Diese Funktion wird ausgelöst SecurityException , wenn Sie nicht über die Berechtigung zum Starten des angegebenen Diensts verfügen.
<div class="achtung">
<strong>Note:</strong> Each call to startService() results in significant work done by the system to manage service lifecycle surrounding the processing of the intent, which can take multiple millisekunden of CPU time. Aufgrund dieser Kosten sollte startService() nicht für die häufige Absichtsübermittlung an einen Dienst und nur für die Planung erheblicher Arbeit verwendet werden. Wird für Anrufe mit hoher Frequenz verwendet #bindService bound services .
Ab DER SDK-Version android.os.Build.VERSION_CODES#Odürfen Apps, die auf die SDK-Version android.os.Build.VERSION_CODES#O abzielen, keine Hintergrunddienste aus dem Hintergrund starten. Siehe
Grenzwerte für die Hintergrundausführung für weitere Details.
<strong>Note:</strong> Beginning with SDK Version android.os.Build.VERSION_CODES#S, apps targeting SDK Version android.os.Build.VERSION_CODES#S or higher are not allowed to start foreground services from the background. Siehe
Verhaltensänderungen: Apps für Android 12
finden Sie weitere Informationen. </Div>
Java-Dokumentation für android.content.Context.startService(android.content.Intent).
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.
Gilt für:
Weitere Informationen
- StopService(Intent)
- <xref:Android.Content.Context.BindService(Android.Content.Intent%2c+Android.Content.IServiceConnection%2c+Android.Content.IServiceConnection)>