Lenguaje

AlarmManager.SetExactAndAllowWhileIdle Método

Definición

Sobrecargas

Nombre Description
SetExactAndAllowWhileIdle(AlarmType, Int64, PendingIntent)

Como #setExact(int, long, PendingIntent), pero esta alarma podrá ejecutarse incluso cuando el sistema esté en modos de inactividad de bajo consumo.

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

Al igual que setExact(int,long,String,OnAlarmListener,Handler), pero esta alarma se podrá ejecutar incluso cuando el sistema esté en modos de inactividad de bajo consumo.

SetExactAndAllowWhileIdle(AlarmType, Int64, PendingIntent)

Como #setExact(int, long, PendingIntent), pero esta alarma podrá ejecutarse incluso cuando el sistema esté en modos de inactividad de bajo 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

Parámetros

type
AlarmType

tipo de alarma.

triggerAtMillis
Int64

tiempo en milisegundos que la alarma debe apagarse, utilizando el reloj adecuado (dependiendo del tipo de alarma).

operation
PendingIntent

Acción que se debe realizar cuando se apaga la alarma; normalmente procede de PendingIntent#getBroadcast IntentSender.getBroadcast().

Atributos

Comentarios

Al igual que setExact(int,long,PendingIntent), pero esta alarma se podrá ejecutar incluso cuando el sistema esté en modos de inactividad de bajo consumo. Si no necesita la programación exacta de la alarma, pero todavía necesita ejecutarse mientras está inactiva, considere la posibilidad de usar setAndAllowWhileIdle(int, long, PendingIntent). Este tipo de alarma solo debe usarse para situaciones en las que realmente es necesario que la alarma se apague mientras está inactiva- un ejemplo razonable sería para una notificación de calendario que debería hacer un sonido para que el usuario lo tenga en cuenta. Cuando se envía la alarma, la aplicación también se agregará a la lista de exención temporal de energía del sistema durante aproximadamente 10 segundos para permitir que esa aplicación adquiera más bloqueos de reactivación en los que completar su trabajo.

Estas alarmas pueden afectar significativamente al uso de energía del dispositivo cuando está inactiva (y, por lo tanto, causar una culpa significativa de la batería a la programación de la aplicación), por lo que deben usarse con cuidado. Para reducir el abuso, hay restricciones sobre la frecuencia con la que estas alarmas se apagarán para una aplicación determinada. En funcionamiento normal del sistema, no enviará estas alarmas más de cada minuto (en cuyo momento se envía cada alarma pendiente); cuando en modos de inactividad de bajo consumo esta duración puede ser significativamente mayor, como 15 minutos.

A diferencia de otras alarmas, el sistema es libre de reprogramar este tipo de alarma para que ocurra fuera de orden con cualquier otra alarma, incluso las de la misma aplicación. Esto ocurrirá claramente cuando el dispositivo esté inactivo (ya que esta alarma puede apagarse mientras está inactiva, cuando cualquier otra alarma de la aplicación se mantendrá hasta más adelante), pero también puede ocurrir incluso cuando no está inactiva. Tenga en cuenta que el sistema operativo permitirá más flexibilidad para programar estas alarmas que las alarmas exactas normales, ya que la aplicación ha optado por este comportamiento. Cuando el dispositivo está inactivo, puede tardar aún más libertades con la programación para optimizar la duración de la batería.

Nota: A partir de Build.VERSION_CODES. S, las aplicaciones destinadas al nivel 31 del SDK o superior deben solicitar el permiso de SCHEDULE_EXACT_ALARM para usar esta API, a menos que la aplicación esté exenta de restricciones de batería. El usuario y el sistema pueden revocar este permiso a través de la pantalla especial de acceso a la aplicación en Configuración. Nota: Las alarmas exactas solo deben usarse para las características orientadas al usuario. Para obtener más información, consulte Permiso de alarma exacta. Las alarmas programadas a través de esta API podrán iniciar un servicio en primer plano incluso si la aplicación está en segundo plano.

Consulte también:

Referencia de Android para android.app.AlarmManager.setExactAndAllowWhileIdle.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Se aplica a

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

Al igual que setExact(int,long,String,OnAlarmListener,Handler), pero esta alarma se podrá ejecutar incluso cuando el sistema esté en modos de inactividad de bajo 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

Parámetros

type
AlarmType

tipo de alarma. El valor es uno de los siguientes: RTC_WAKEUP; RTC; ELAPSED_REALTIME_WAKEUP; ELAPSED_REALTIME

triggerAtMillis
Int64

La hora exacta en milisegundos, que se debe entregar la alarma, expresada en las unidades del reloj adecuadas (dependiendo del tipo de alarma).

tag
String

Etiqueta de cadena utilizada para identificar esta alarma en registros y atribución de batería. Este valor no puede ser nulo.

executor
IExecutor

Ejecutor en el que se va a ejecutar la devolución de llamada onAlarm() del agente de escucha. Este valor no puede ser nulo.

listener
AlarmManager.IOnAlarmListener

Instancia de OnAlarmListener cuyo método onAlarm() se llamará cuando se alcance la hora de alarma. Este valor no puede ser nulo.

Atributos

Comentarios

Al igual que setExact(int,long,String,OnAlarmListener,Handler), pero esta alarma se podrá ejecutar incluso cuando el sistema esté en modos de inactividad de bajo consumo.

El sistema Android puede cancelar las alarmas basadas en el cliente de escucha siempre que el proceso de llamada ya no tenga componentes en ejecución, como Actividad, Servicio o ContentProvider, por lo que solo se usan estas API cuando no es necesario recibir alarmas después de que finalice el componente actual y asegúrese también de cancelarlos (OnAlarmListener) cuando lo haga. Por ejemplo, si usa estas API desde una actividad, asegúrese de cancelar las alarmas respectivas cuando finalice la actividad. Si necesita recibir la alarma incluso después de eso, use las API basadas en PendingIntent.

Referencia de Android para android.app.AlarmManager.setExactAndAllowWhileIdle.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Se aplica a