Поделиться через


AlarmManager.SetRepeating(AlarmType, Int64, Int64, PendingIntent) Метод

Определение

Запланируйте повторную тревогу.

[Android.Runtime.Register("setRepeating", "(IJJLandroid/app/PendingIntent;)V", "GetSetRepeating_IJJLandroid_app_PendingIntent_Handler")]
public virtual void SetRepeating (Android.App.AlarmType type, long triggerAtMillis, long intervalMillis, Android.App.PendingIntent operation);
[<Android.Runtime.Register("setRepeating", "(IJJLandroid/app/PendingIntent;)V", "GetSetRepeating_IJJLandroid_app_PendingIntent_Handler")>]
abstract member SetRepeating : Android.App.AlarmType * int64 * int64 * Android.App.PendingIntent -> unit
override this.SetRepeating : Android.App.AlarmType * int64 * int64 * Android.App.PendingIntent -> unit

Параметры

type
AlarmType

тип сигнализации.

triggerAtMillis
Int64

время в миллисекундах, что тревога должна сначала уйти, используя соответствующие часы (в зависимости от типа сигнализации).

intervalMillis
Int64

интервал в миллисекундах между последующими повторами тревоги.

operation
PendingIntent

Действие для выполнения при отключении сигнализации; обычно происходит из PendingIntent#getBroadcast IntentSender.getBroadcast().

Атрибуты

Комментарии

Запланируйте повторную тревогу. <Примечание>. Для операций времени (тиков, тайм-аутов и т. д.) проще и эффективнее использовать android.os.Handler.</b> Если для того же IntentSender уже запланирована сигнализация, она сначала будет отменена.

Например #set, за исключением того, что вы также можете указать период, в течение которого сигнализация будет автоматически повторяться. Эта тревога продолжает повторяться до явного удаления.#cancel Если указанное время триггера находится в прошлом, то тревога будет активирована немедленно, с числом предупреждений в зависимости от того, насколько далеко в прошлом время триггера относительно интервала повторения.

Если оповещение отложено (например, для типов предупреждений, отличных от _WAKEUP), то пропущенный повтор будет доставлен как можно скорее. После этого будущие оповещения будут доставлены в соответствии с исходным расписанием; они не смеяются со временем. Например, если вы установили повторяющуюся тревогу для верхней части каждого часа, но телефон спал с 7:45 до 8:45, сигнализация будет отправлена сразу после пробуждения телефона, то следующая тревога будет отправлена в 9:00.

Если ваше приложение хочет разрешить время доставки смещения, чтобы гарантировать, что по крайней мере определенный интервал времени всегда истекает между оповещениями, то подход, используемый для использования однократных предупреждений, планирование следующего при обработке каждой доставки сигнализации.

<p class="note"><b Note:</b>> as of API 19, все повторяющиеся оповещения неактактны. Если приложению требуется точное время доставки, оно должно использовать однократные точные оповещения, перепланируйте каждый раз, как описано выше. Устаревшие приложения, которые targetSdkVersion раньше API 19 будут продолжать иметь все свои оповещения, в том числе повторяющиеся оповещения, рассматриваются как точные.

Приложениям, предназначенным Build.VERSION_CODES#S для установки этой сигнализации, необходимо задать флаг PendingIntent#FLAG_MUTABLE для PendingIntent установки этого оповещения, если они хотят, чтобы счетчик сигналов был предоставлен с ключом Intent#EXTRA_ALARM_COUNT.

Документация по Java для android.app.AlarmManager.setRepeating(int, long, long, android.app.PendingIntent).

Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.

Применяется к

См. также раздел

  • Handler
  • <xref:Android.App.AlarmManager.Set(Android.App.AlarmType%2c+System.Int64%2c+System.Int64)>
  • <xref:Android.App.AlarmManager.SetExact(Android.App.AlarmType%2c+System.Int64%2c+System.Int64)>
  • <xref:Android.App.AlarmManager.SetWindow(Android.App.AlarmType%2c+System.Int64%2c+System.Int64%2c+System.Int64)>
  • Cancel(PendingIntent)
  • SendBroadcast(Intent)
  • <xref:Android.Content.Context.RegisterReceiver(Android.Content.BroadcastReceiver%2c+Android.Content.IntentFilter)>
  • FilterEquals(Intent)