AlarmManager.SetExactAndAllowWhileIdle Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Como #setExact(int, long, PendingIntent)
, mas este alarme será permitido executar mesmo quando o sistema está 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 que o alarme deve disparar, usando o relógio apropriado (dependendo do tipo de alarme).
- operation
- PendingIntent
Ação a realizar quando o alarme disparar; normalmente vem de PendingIntent#getBroadcast
IntentSender.getBroadcast()
.
- Atributos
Comentários
Como #setExact(int, long, PendingIntent)
, mas este alarme será permitido executar mesmo quando o sistema está em modos ociosos de baixa potência. Se você não precisar agendar o alarme exato, mas ainda precisar executar enquanto estiver ocioso, considere usar #setAndAllowWhileIdle
o . Esse tipo de alarme deve <ser>usado apenas< para> situações em que é realmente necessário que o alarme dispare enquanto estiver ocioso - um exemplo razoável seria para uma notificação de calendário que deve emitir um som para que o usuário esteja ciente disso. Quando o alarme for disparado, o aplicativo também será adicionado à lista de isenção de energia temporária do sistema por aproximadamente 10 segundos para permitir que o aplicativo adquira mais bloqueios de ativação para concluir seu trabalho.</p>
Esses alarmes podem afetar significativamente o uso de energia do dispositivo quando ocioso (e, portanto, causar culpa significativa da bateria para o aplicativo que os agenda), por isso devem ser usados com cuidado. Para reduzir o abuso, há restrições sobre a frequência com que esses alarmes dispararão para uma determinada aplicação. Em operação normal do sistema, ele não emitirá esses alarmes mais do que cerca de cada minuto (quando cada alarme pendente é despachado); 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 claramente acontecerá 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 pode acontecer mesmo quando não estiver ocioso. Observe que o sistema operacional se 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 ser necessário ainda mais liberdade com o agendamento, a fim de otimizar a vida útil da bateria.
<p class="note"><strong>Nota:</strong> A partir do Build.VERSION_CODES#S
, os aplicativos direcionados ao SDK nível 31 ou superior precisam solicitar a Manifest.permission#SCHEDULE_EXACT_ALARM SCHEDULE_EXACT_ALARM
permissão 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 especial de acesso ao aplicativo em Configurações.
<p class="note"><strong>Nota:</strong> Os alarmes exatos só devem ser usados para recursos voltados para o usuário. Para obter mais detalhes, consulte Permissão exata de alarme.
Os alarmes agendados por meio dessa API poderão iniciar um serviço em primeiro plano, mesmo que o aplicativo esteja em segundo plano.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.