Idioma

AlarmManager.SetExactAndAllowWhileIdle Método

Definição

Sobrecargas

Nome Description
SetExactAndAllowWhileIdle(AlarmType, Int64, PendingIntent)

Como #setExact(int, long, PendingIntent), mas esse alarme poderá ser executado mesmo quando o sistema estiver em modos ociosos de baixa potência.

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

Como setExact(int,long, String, OnAlarmListener, Handler), mas esse alarme poderá ser executado mesmo quando o sistema estiver em modos ociosos de baixa potência.

SetExactAndAllowWhileIdle(AlarmType, Int64, PendingIntent)

Como #setExact(int, long, PendingIntent), mas esse alarme poderá ser executado mesmo quando o sistema estiver em modos ociosos de baixa potência.

[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 alarme.

triggerAtMillis
Int64

tempo em milissegundos em que o alarme deve disparar, usando o relógio apropriado (dependendo do tipo de alarme).

operation
PendingIntent

Ação a ser executada quando o alarme disparar; normalmente vem de PendingIntent#getBroadcast IntentSender.getBroadcast().

Atributos

Comentários

Como setExact(int,long, PendingIntent), mas esse alarme poderá ser executado mesmo quando o sistema estiver em modos ociosos de baixa potência. Se você não precisar do agendamento exato do alarme, mas ainda precisar executar enquanto estiver ocioso, considere usar setAndAllowWhileIdle(int, long, PendingIntent). Esse tipo de alarme só deve ser usado para situações em que, na verdade, é necessário que o alarme desative enquanto estiver ocioso . Um exemplo razoável seria para uma notificação de calendário que deve fazer um som para que o usuário esteja ciente dele. Quando o alarme for enviado, o aplicativo também será adicionado à lista temporária de isenção de energia do sistema por aproximadamente 10 segundos para permitir que esse aplicativo adquira novos bloqueios de ativação para concluir seu trabalho.

Esses alarmes podem afetar significativamente o uso de energia do dispositivo quando ociosos (e, portanto, causar uma culpa significativa da bateria para o aplicativo que os agenda), portanto, eles devem ser usados com cuidado. Para reduzir o abuso, há restrições sobre a frequência com que esses alarmes dispararão para um determinado aplicativo. Em operação normal do sistema, ele não enviará esses alarmes mais do que a cada minuto (momento em que cada alarme pendente é expedido); quando em modos ociosos de baixa potência essa duração pode ser significativamente maior, como 15 minutos.

Ao contrário de outros alarmes, o sistema é livre para reagendar esse tipo de alarme para acontecer fora de ordem com quaisquer outros alarmes, mesmo aqueles do mesmo aplicativo. Isso ocorrerá claramente quando o dispositivo estiver ocioso (já que esse alarme pode disparar enquanto estiver ocioso, quando quaisquer outros alarmes do aplicativo serão mantidos até mais tarde), mas também podem ocorrer mesmo quando não estiverem ociosos. Observe que o sistema operacional permitirá mais flexibilidade para agendar esses alarmes do que alarmes exatos regulares, uma vez que o aplicativo optou por esse comportamento. Quando o dispositivo está ocioso, pode levar ainda mais liberdades com o agendamento para otimizar a duração da bateria.

Observação: começando com Build.VERSION_CODES. S, os aplicativos destinados ao SDK nível 31 ou superior precisam solicitar a permissão SCHEDULE_EXACT_ALARM para usar essa API, a menos que o aplicativo esteja isento de restrições de bateria. O usuário e o sistema podem revogar essa permissão por meio da tela de acesso especial do aplicativo em Configurações. Observação: os alarmes exatos só devem ser usados para recursos voltados para o usuário. Para obter mais detalhes, consulte a permissão de alarme exata. Os alarmes agendados por meio dessa API poderão iniciar um serviço em primeiro plano mesmo se o aplicativo estiver em segundo plano.

Consulte também:

Referência do Android para android.app.AlarmManager.setExactAndAllowWhileIdle.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Aplica-se a

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

Como setExact(int,long, String, OnAlarmListener, Handler), mas esse alarme poderá ser executado mesmo quando o sistema estiver em modos ociosos de baixa potência.

[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 alarme. O valor é um dos seguintes: RTC_WAKEUP; RTC; ELAPSED_REALTIME_WAKEUP; ELAPSED_REALTIME

triggerAtMillis
Int64

A hora exata em milissegundos, em que o alarme deve ser entregue, expressa nas unidades do relógio apropriadas (dependendo do tipo de alarme).

tag
String

Uma marca de cadeia de caracteres usada para identificar esse alarme em logs e na atribuição de bateria. Esse valor não pode ser nulo.

executor
IExecutor

O Executor no qual executar o retorno de chamada onAlarm() do ouvinte. Esse valor não pode ser nulo.

listener
AlarmManager.IOnAlarmListener

Instância OnAlarmListener cujo método onAlarm() será chamado quando a hora do alarme for atingida. Esse valor não pode ser nulo.

Atributos

Comentários

Como setExact(int,long, String, OnAlarmListener, Handler), mas esse alarme poderá ser executado mesmo quando o sistema estiver em modos ociosos de baixa potência.

Os alarmes baseados em ouvintes podem ser cancelados pelo sistema Android sempre que o processo de chamada não tiver mais nenhum componente em execução, como Atividade, Serviço ou ContentProvider, portanto, use apenas essas APIs quando não precisar receber alarmes após a conclusão do componente atual e também certifique-se de cancelá-las (OnAlarmListener) quando isso acontecer. Por exemplo, se você usar essas APIs de uma Atividade, cancele os respectivos alarmes quando a atividade for concluída. Se você precisar receber o alarme mesmo depois disso, use as APIs baseadas em PendingIntent.

Referência do Android para android.app.AlarmManager.setExactAndAllowWhileIdle.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Aplica-se a