AlarmManager.SetExactAndAllowWhileIdle 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.
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.
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.