Context.StartService(Intent) Methode

Definition

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 zu startenden Dienst an. Die Absicht muss vollständig explizit sein (angabe eines Komponentennamens). Zusätzliche Werte können in den Absichts-Extras enthalten sein, um Argumente zusammen mit diesem spezifischen Startaufruf anzugeben.

Gibt zurück

Wenn der Dienst gestartet wird oder bereits ausgeführt wird, wird der ComponentName des tatsächlich gestarteten Diensts zurückgegeben. 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 zu startenden Dienstimplementierung oder einen bestimmten Paketnamen für das Ziel enthalten. Wenn die Absicht weniger angegeben ist, protokolliert sie eine Warnung dazu. In diesem Fall kann einer der mehrere übereinstimmenden Dienste verwendet werden. Wenn dieser Dienst noch nicht ausgeführt wird, wird er instanziiert und gestartet (bei Bedarf wird ein Prozess für ihn erstellt). wenn es ausgeführt wird, wird es weiterhin ausgeführt.

Jeder Aufruf dieser Methode führt zu einem entsprechenden Aufruf der Methode des Zieldienstsandroid.app.Service#onStartCommand, wobei die <>var intent</var> hier angegeben ist. Dies bietet eine bequeme Möglichkeit, Aufträge an einen Dienst zu übermitteln, ohne die Schnittstelle binden und aufrufen zu müssen.

Die Verwendung von startService() überschreibt die Standarddienstlebensdauer, die von #bindServiceverwaltet wird: Es erfordert, dass der Dienst weiterhin ausgeführt wird, bis #stopService er aufgerufen wird, unabhängig davon, ob Clients mit ihm verbunden sind. Beachten Sie, dass Aufrufe von startService() nicht geschachtelt werden: Unabhängig davon, wie oft Sie startService() aufrufen, wird es durch einen einzelnen Aufruf von #stopService beendet.

Das System versucht, Dienste so weit wie möglich auszuführen. Sie sollten nur beendet werden, wenn die aktuelle Vordergrundanwendung so viele Ressourcen verwendet, dass der Dienst beendet werden muss. Wenn fehler im Prozess des Diensts auftreten, wird er automatisch neu gestartet.

Diese Funktion wird ausgelöst SecurityException , wenn Sie nicht über die Berechtigung zum Starten des angegebenen Diensts verfügen.

<div class="caution">

<strong>Hinweis:</strong> Jeder Aufruf von startService() führt zu erheblichen Arbeiten des Systems zur Verwaltung des Dienstlebenszyklus rund um die Verarbeitung der Absicht, was mehrere Millisekunden CPU-Zeit in Anspruch nehmen kann. Aufgrund dieser Kosten sollte startService() nicht für die häufige Absichtsbereitstellung an einen Dienst und nur für die Planung wichtiger Arbeiten verwendet werden. Verwenden Sie #bindService bound services für hochfrequente Anrufe.

Ab der SDK-Version android.os.Build.VERSION_CODES#Odürfen Apps, die auf die SDK-Version android.os.Build.VERSION_CODES#O oder höher abzielen, Keine Hintergrunddienste im Hintergrund starten. Siehe

Hintergrundausführungslimits für weitere Details.

<strong>Hinweis:</strong> Ab SDK-Version android.os.Build.VERSION_CODES#Sdürfen Apps, die auf die SDK-Version android.os.Build.VERSION_CODES#S oder höher abzielen, keine Vordergrunddienste im Hintergrund starten. 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, die auf Arbeiten basieren, die vom Android Open Source Project erstellt und freigegeben wurden und gemäß den In der 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)>