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 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 #bindService
verwaltet 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#O
dü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#S
dü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)>