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
.
Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом 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)