Condividi tramite


AlarmManager.SetExactAndAllowWhileIdle Metodo

Definizione

Come #setExact(int, long, PendingIntent), ma questo allarme sarà autorizzato a essere eseguito anche quando il sistema è in modalità di inattività a basso consumo.

[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

Parametri

type
AlarmType

tipo di allarme.

triggerAtMillis
Int64

tempo in millisecondi in cui l'allarme deve essere spento, utilizzando l'orologio appropriato (a seconda del tipo di allarme).

operation
PendingIntent

Azione da eseguire quando l'allarme si spegne; in genere proviene da PendingIntent#getBroadcast IntentSender.getBroadcast().

Attributi

Commenti

Come #setExact(int, long, PendingIntent), ma questo allarme sarà autorizzato a essere eseguito anche quando il sistema è in modalità di inattività a basso consumo. Se non è necessaria una pianificazione esatta dell'allarme, ma è comunque necessario eseguire durante l'inattività, prendere in considerazione l'uso di #setAndAllowWhileIdle. Questo tipo di allarme deve <essere usato solo< b>/b> per situazioni in cui è effettivamente necessario che l'allarme si spegne mentre è inattivo - un esempio ragionevole sarebbe per una notifica del calendario che dovrebbe fare un suono in modo che l'utente ne sia a conoscenza. Quando viene inviato l'allarme, l'app verrà aggiunta anche all'elenco di esenzione temporanea dell'alimentazione del sistema per circa 10 secondi per consentire all'applicazione di acquisire ulteriori blocchi di riattivazione in cui completare il lavoro.</p>

Questi allarmi possono influire significativamente sull'uso dell'alimentazione del dispositivo quando sono inattive (e quindi causare una significativa colpa della batteria per la pianificazione dell'app), quindi devono essere usati con attenzione. Per ridurre l'abuso, ci sono restrizioni sulla frequenza con cui questi allarmi andranno disattivati per una particolare applicazione. Nel normale funzionamento del sistema, non invierà questi allarmi più di circa ogni minuto (a quel punto ogni allarme in sospeso viene inviato); quando in modalità di inattività a basso consumo questa durata può essere significativamente più lunga, ad esempio 15 minuti.

A differenza di altri allarmi, il sistema è libero di riprogrammare questo tipo di allarme per verificarsi fuori ordine con qualsiasi altro allarme, anche quelli della stessa app. Ciò si verifica chiaramente quando il dispositivo è inattiva (poiché questo allarme può andare spento mentre è inattiva, quando qualsiasi altro allarme dall'app verrà mantenuto fino a un secondo momento), ma può verificarsi anche quando non è inattiva. Si noti che il sistema operativo consentirà maggiore flessibilità per la pianificazione di questi allarmi rispetto ai normali allarmi esatti, poiché l'applicazione ha scelto questo comportamento. Quando il dispositivo è inattiva, potrebbe richiedere ancora più libertà con la pianificazione per ottimizzare la durata della batteria.

<p class="note"><strong>Note:</strong> Starting with Build.VERSION_CODES#S, apps targeting SDK level 31 or higher need to request the Manifest.permission#SCHEDULE_EXACT_ALARM SCHEDULE_EXACT_ALARM permission to use this API, a meno che l'app non sia esente da restrizioni della batteria. L'utente e il sistema possono revocare questa autorizzazione tramite la schermata speciale di accesso all'app in Impostazioni.

<p class="note"><strong>Note:</strong> Exact alarms should be used only for user-facing features. Per altri dettagli, vedere Autorizzazione di allarme esatta.

Gli allarmi pianificati tramite questa API potranno avviare un servizio in primo piano anche se l'app è in background.

Documentazione java per android.app.AlarmManager.setExactAndAllowWhileIdle(int, long, android.app.PendingIntent).

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.

Si applica a