AlarmManager.SetRepeating(AlarmType, Int64, Int64, PendingIntent) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Planifiez une alarme répétée.
[Android.Runtime.Register("setRepeating", "(IJJLandroid/app/PendingIntent;)V", "GetSetRepeating_IJJLandroid_app_PendingIntent_Handler")]
public virtual void SetRepeating (Android.App.AlarmType type, long triggerAtMillis, long intervalMillis, Android.App.PendingIntent operation);
[<Android.Runtime.Register("setRepeating", "(IJJLandroid/app/PendingIntent;)V", "GetSetRepeating_IJJLandroid_app_PendingIntent_Handler")>]
abstract member SetRepeating : Android.App.AlarmType * int64 * int64 * Android.App.PendingIntent -> unit
override this.SetRepeating : Android.App.AlarmType * int64 * int64 * Android.App.PendingIntent -> unit
Paramètres
- type
- AlarmType
type d’alarme.
- triggerAtMillis
- Int64
temps en millisecondes que l’alarme doit d’abord se désactiver, à l’aide de l’horloge appropriée (selon le type d’alarme).
- intervalMillis
- Int64
intervalle en millisecondes entre les répétitions suivantes de l’alarme.
- operation
- PendingIntent
Action à effectuer lorsque l’alarme s’éteint ; provient généralement de PendingIntent#getBroadcast
IntentSender.getBroadcast()
.
- Attributs
Remarques
Planifiez une alarme répétée. <b>Remarque : pour les opérations de minutage (cycles, délais d’expiration, etc.), il est plus facile et beaucoup plus efficace d’utiliser android.os.Handler
.</b> S’il existe déjà une alarme planifiée pour le même IntentSender, elle sera d’abord annulée.
Comme #set
, sauf que vous pouvez également fournir une période à laquelle l’alarme se répète automatiquement. Cette alarme continue de se répéter jusqu’à ce qu’elle soit explicitement supprimée avec #cancel
. Si l’heure de déclenchement indiquée se trouve dans le passé, l’alarme est déclenchée immédiatement, avec un nombre d’alarmes selon la distance entre le temps du déclencheur et l’intervalle de répétition.
Si une alarme est retardée (par mise en veille système, par exemple, pour les types d’alarmes non _WAKEUP), une répétition ignorée est fournie dès que possible. Après cela, les alarmes futures seront livrées selon le calendrier d’origine ; ils ne dérivent pas au fil du temps. Par exemple, si vous avez défini une alarme périodique pour le haut de toutes les heures, mais que le téléphone était endormi de 7h45 jusqu’à 8h45, une alarme sera envoyée dès que le téléphone se réveille, puis l’alarme suivante sera envoyée à 9h00.
Si votre application souhaite autoriser la dérive des délais de livraison afin de garantir qu’au moins un certain intervalle de temps s’écoule toujours entre les alarmes, l’approche à adopter consiste à utiliser des alarmes ponctuelles, en planifiez la suivante vous-même lors de la gestion de chaque livraison d’alarme.
<p class="note"><b>Remarque :</b> à partir de l’API 19, toutes les alarmes répétées sont inexactes. Si votre application a besoin de temps de livraison précis, elle doit utiliser des alarmes exactes ponctuelles, rééchantillonner chaque fois comme décrit ci-dessus. Les applications héritées dont targetSdkVersion
la version antérieure à l’API 19 continue d’avoir toutes leurs alarmes, y compris les alarmes répétées, traitées comme exactes.
Le ciblage des Build.VERSION_CODES#S
applications doit définir l’indicateur PendingIntent#FLAG_MUTABLE
sur l’être PendingIntent
utilisé pour définir cette alarme, s’ils veulent que le nombre d’alarmes soit fourni avec la clé Intent#EXTRA_ALARM_COUNT
.
Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.
S’applique à
Voir aussi
- Handler
- <xref:Android.App.AlarmManager.Set(Android.App.AlarmType%2c+System.Int64%2c+System.Int64)>
- <xref:Android.App.AlarmManager.SetExact(Android.App.AlarmType%2c+System.Int64%2c+System.Int64)>
- <xref:Android.App.AlarmManager.SetWindow(Android.App.AlarmType%2c+System.Int64%2c+System.Int64%2c+System.Int64)>
- Cancel(PendingIntent)
- SendBroadcast(Intent)
- <xref:Android.Content.Context.RegisterReceiver(Android.Content.BroadcastReceiver%2c+Android.Content.IntentFilter)>
- FilterEquals(Intent)