Partager via


AlarmManager.SetExactAndAllowWhileIdle Méthode

Définition

Comme #setExact(int, long, PendingIntent), mais cette alarme sera autorisée à s’exécuter même lorsque le système est en mode d’inactivité à faible alimentation.

[Android.Runtime.Register("setExactAndAllowWhileIdle", "(IJLandroid/app/PendingIntent;)V", "GetSetExactAndAllowWhileIdle_IJLandroid_app_PendingIntent_Handler", ApiSince=23)]
[Android.Runtime.RequiresPermission("android.permission.SCHEDULE_EXACT_ALARM")]
public virtual void SetExactAndAllowWhileIdle (Android.App.AlarmType type, long triggerAtMillis, Android.App.PendingIntent operation);
[<Android.Runtime.Register("setExactAndAllowWhileIdle", "(IJLandroid/app/PendingIntent;)V", "GetSetExactAndAllowWhileIdle_IJLandroid_app_PendingIntent_Handler", ApiSince=23)>]
[<Android.Runtime.RequiresPermission("android.permission.SCHEDULE_EXACT_ALARM")>]
abstract member SetExactAndAllowWhileIdle : Android.App.AlarmType * int64 * Android.App.PendingIntent -> unit
override this.SetExactAndAllowWhileIdle : Android.App.AlarmType * int64 * Android.App.PendingIntent -> unit

Paramètres

type
AlarmType

type d’alarme.

triggerAtMillis
Int64

durée en millisecondes pendant laquelle l’alarme doit s’éteindre, à l’aide de l’horloge appropriée (selon le type d’alarme).

operation
PendingIntent

Action à effectuer lorsque l’alarme s’éteint ; provient généralement de PendingIntent#getBroadcast IntentSender.getBroadcast().

Attributs

Remarques

Comme #setExact(int, long, PendingIntent), mais cette alarme sera autorisée à s’exécuter même lorsque le système est en mode d’inactivité à faible alimentation. Si vous n’avez pas besoin d’une planification exacte de l’alarme, mais que vous devez toujours s’exécuter pendant l’inactivité, envisagez d’utiliser #setAndAllowWhileIdle. Ce type d’alarme doit <être>utilisé uniquement</b> pour les situations où il est réellement nécessaire que l’alarme s’éteigne pendant l’inactivité , un exemple raisonnable serait pour une notification de calendrier qui doit émettre un son afin que l’utilisateur soit conscient de celui-ci. Lorsque l’alarme est distribuée, l’application est également ajoutée à la liste d’exemption d’alimentation temporaire du système pendant environ 10 secondes pour permettre à cette application d’acquérir d’autres verrous de veille dans lesquels effectuer son travail.</p>

Ces alarmes peuvent avoir un impact significatif sur l’utilisation de l’alimentation de l’appareil en cas d’inactivité (et donc causer une charge importante à l’application qui les planifie), de sorte qu’elles doivent être utilisées avec soin. Pour réduire les abus, il existe des restrictions sur la fréquence à laquelle ces alarmes seront désactivées pour une application particulière. En cas de fonctionnement normal du système, il n’envoie pas ces alarmes plus d’environ toutes les minutes (à quel moment toutes ces alarmes en attente sont distribuées) ; lorsque dans les modes inactifs à faible alimentation, cette durée peut être considérablement plus longue, par exemple 15 minutes.

Contrairement à d’autres alarmes, le système est libre de replanifier ce type d’alarme pour se produire hors d’ordre avec d’autres alarmes, même celles de la même application. Cela se produit clairement lorsque l’appareil est inactif (car cette alarme peut s’éteindre pendant l’inactivité, quand toutes les autres alarmes de l’application seront conservées jusqu’à plus tard), mais peut également se produire même lorsqu’elle n’est pas inactive. Notez que le système d’exploitation lui permettra de planifier ces alarmes plus souples que les alarmes exactes régulières, car l’application a choisi ce comportement. Lorsque l’appareil est inactif, il peut prendre encore plus de libertés avec la planification afin d’optimiser la durée de vie de la batterie.

<p class="remarque"><strong>Remarque :</strong> Starting with Build.VERSION_CODES#S, apps ciblant le sdk niveau 31 ou supérieur doivent demander l’autorisation Manifest.permission#SCHEDULE_EXACT_ALARM SCHEDULE_EXACT_ALARM d’utiliser cette API, sauf si l’application est exemptée des restrictions de batterie. L’utilisateur et le système peuvent révoquer cette autorisation via l’écran d’accès d’application spécial dans Paramètres.

<p class="note"><strong>Remarque :</strong> Exact alarms ne doit être utilisé que pour les fonctionnalités orientées utilisateur. Pour plus d’informations, consultez l’autorisation d’alarme exacte.

Les alarmes planifiées via cette API sont autorisées à démarrer un service de premier plan même si l’application est en arrière-plan.

Documentation Java pour android.app.AlarmManager.setExactAndAllowWhileIdle(int, long, android.app.PendingIntent).

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 à