Langage

Context.StartService(Intent) Méthode

Définition

Demandez qu’un service d’application donné soit démarré.

[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

Paramètres

service
Intent

Identifie le service à démarrer. L’intention doit être entièrement explicite (en fournissant un nom de composant). Des valeurs supplémentaires peuvent être incluses dans les extras Intention pour fournir des arguments avec cet appel de début spécifique.

Retours

Si le service est démarré ou est déjà en cours d’exécution, le ComponentName service réel démarré est retourné ; sinon, si le service n’existe pas, la valeur Null est retournée.

Attributs

Exceptions

Remarques

Demandez qu’un service d’application donné soit démarré. L’intention doit contenir le nom de classe complet d’une implémentation de service spécifique à démarrer, ou un nom de package spécifique à cibler. Si l’intention est moins spécifiée, elle enregistre un avertissement à ce sujet. Dans ce cas, l’un des services correspondants multiples peut être utilisé. Si ce service n’est pas déjà en cours d’exécution, il est instancié et démarré (création d’un processus pour celui-ci si nécessaire) ; s’il est en cours d’exécution, il reste en cours d’exécution.

Chaque appel à cette méthode entraîne un appel correspondant à la méthode du android.app.Service#onStartCommand service cible, avec l’intention<></var> var donnée ici. Cela permet de soumettre des travaux à un service sans avoir à lier et à appeler à son interface.

L’utilisation de startService() remplace la durée de vie du service par défaut gérée par #bindService: le service doit rester en cours d’exécution jusqu’à #stopService ce qu’il soit appelé, que les clients soient connectés à celui-ci. Notez que les appels à startService() ne sont pas imbriqués : peu importe le nombre de fois où vous appelez startService(), un seul appel l’arrêtera #stopService .

Le système tente de continuer à exécuter les services autant que possible. La seule fois qu’elles doivent être arrêtées, c’est si l’application de premier plan actuelle utilise autant de ressources que le service doit être tué. Si des erreurs se produisent dans le processus du service, elle est redémarrée automatiquement.

Cette fonction lève SecurityException si vous n’êtes pas autorisé à démarrer le service donné.

<div class="caution »>

< >forte remarque :</fort> Chaque appel à startService() entraîne un travail significatif effectué par le système pour gérer le cycle de vie du service entourant le traitement de l’intention, ce qui peut prendre plusieurs millisecondes de temps processeur. En raison de ce coût, startService() ne doit pas être utilisé pour la livraison fréquente d’intentions à un service, et uniquement pour planifier des travaux importants. Utiliser #bindService bound services pour les appels à haute fréquence.

À compter de la version android.os.Build.VERSION_CODES#Odu SDK, les applications ciblant la version du SDK ou une version android.os.Build.VERSION_CODES#O ultérieure ne sont pas autorisées à démarrer les services en arrière-plan à partir de l’arrière-plan. Consultez

Limites d’exécution en arrière-plan pour plus d’informations.

<remarque forte>:</forte> à partir de la version android.os.Build.VERSION_CODES#Sdu SDK, les applications ciblant la version du SDK ou une version android.os.Build.VERSION_CODES#S ultérieure ne sont pas autorisées à démarrer les services de premier plan à partir de l’arrière-plan. Consultez

Changements de comportement : Applications ciblant Android 12

pour plus d’informations. <Commande /div>

Java documentation pour android.content.Context.startService(android.content.Intent).

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

S’applique à

Voir aussi

  • StopService(Intent)
  • <xref:Android.Content.Context.BindService(Android.Content.Intent%2c+Android.Content.IServiceConnection%2c+Android.Content.IServiceConnection)>