Lingua

AlarmManager.SetExactAndAllowWhileIdle Metodo

Definizione

Overload

Nome Descrizione
SetExactAndAllowWhileIdle(AlarmType, Int64, PendingIntent)

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

SetExactAndAllowWhileIdle(AlarmType, Int64, String, IExecutor, AlarmManager+IOnAlarmListener)

Come setExact(int,long,String,OnAlarmListener,Handler), ma questo allarme potrà essere eseguito anche quando il sistema è in modalità di inattività a basso consumo.

SetExactAndAllowWhileIdle(AlarmType, Int64, PendingIntent)

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 potrà 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à, è consigliabile usare setAndAllowWhileIdle(int, long, PendingIntent). Questo tipo di allarme deve essere usato solo 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.

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.

Nota: a partire da Build.VERSION_CODES. S, le app destinate al livello SDK 31 o superiore devono richiedere l'autorizzazione SCHEDULE_EXACT_ALARM per usare questa API, a meno che l'app non sia esente dalle restrizioni della batteria. L'utente e il sistema possono revocare questa autorizzazione tramite la schermata speciale di accesso all'app in Impostazioni. Nota: gli allarmi esatti devono essere usati solo per le funzionalità rivolte all'utente. 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.

Vedere anche:

Informazioni di riferimento su Android per android.app.AlarmManager.setExactAndAllowWhileIdle.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Si applica a

SetExactAndAllowWhileIdle(AlarmType, Int64, String, IExecutor, AlarmManager+IOnAlarmListener)

Come setExact(int,long,String,OnAlarmListener,Handler), ma questo allarme potrà essere eseguito anche quando il sistema è in modalità di inattività a basso consumo.

[Android.Runtime.Register("setExactAndAllowWhileIdle", "(IJLjava/lang/String;Ljava/util/concurrent/Executor;Landroid/app/AlarmManager$OnAlarmListener;)V", "GetSetExactAndAllowWhileIdle_IJLjava_lang_String_Ljava_util_concurrent_Executor_Landroid_app_AlarmManager_OnAlarmListener_Handler", ApiSince=37)]
public virtual void SetExactAndAllowWhileIdle(Android.App.AlarmType type, long triggerAtMillis, string tag, Java.Util.Concurrent.IExecutor executor, Android.App.AlarmManager.IOnAlarmListener listener);
[<Android.Runtime.Register("setExactAndAllowWhileIdle", "(IJLjava/lang/String;Ljava/util/concurrent/Executor;Landroid/app/AlarmManager$OnAlarmListener;)V", "GetSetExactAndAllowWhileIdle_IJLjava_lang_String_Ljava_util_concurrent_Executor_Landroid_app_AlarmManager_OnAlarmListener_Handler", ApiSince=37)>]
abstract member SetExactAndAllowWhileIdle : Android.App.AlarmType * int64 * string * Java.Util.Concurrent.IExecutor * Android.App.AlarmManager.IOnAlarmListener -> unit
override this.SetExactAndAllowWhileIdle : Android.App.AlarmType * int64 * string * Java.Util.Concurrent.IExecutor * Android.App.AlarmManager.IOnAlarmListener -> unit

Parametri

type
AlarmType

tipo di allarme. Il valore è uno dei seguenti: RTC_WAKEUP; RTC; ELAPSED_REALTIME_WAKEUP; ELAPSED_REALTIME

triggerAtMillis
Int64

Ora esatta in millisecondi, che l'allarme deve essere recapitato, espresso nelle unità dell'orologio appropriate (a seconda del tipo di allarme).

tag
String

Tag stringa usato per identificare questo allarme nei log e attribuzione della batteria. Questo valore non può essere Null.

executor
IExecutor

Executor in cui eseguire il callback onAlarm() del listener. Questo valore non può essere Null.

listener
AlarmManager.IOnAlarmListener

Istanza onAlarmListener il cui metodo onAlarm() verrà chiamato quando viene raggiunta l'ora dell'allarme. Questo valore non può essere Null.

Attributi

Commenti

Come setExact(int,long,String,OnAlarmListener,Handler), ma questo allarme potrà essere eseguito anche quando il sistema è in modalità di inattività a basso consumo.

Gli allarmi basati sul listener possono essere annullati dal sistema Android ogni volta che il processo chiamante non dispone più di componenti in esecuzione, ad esempio Attività, Servizio o ContentProvider, quindi usare queste API solo quando non è necessario ricevere avvisi al termine del componente corrente e assicurarsi anche di annullarli (OnAlarmListener) quando lo fa. Ad esempio, se si usano queste API da un'attività, assicurarsi di annullare i rispettivi allarmi al termine dell'attività. Se è necessario ricevere l'allarme anche dopo, usare le API basate su PendingIntent.

Informazioni di riferimento su Android per android.app.AlarmManager.setExactAndAllowWhileIdle.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Si applica a