AlarmManager.SetRepeating(AlarmType, Int64, Int64, PendingIntent) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Planen Sie einen wiederholten Alarm.
[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
Parameter
- type
- AlarmType
Art des Alarms.
- triggerAtMillis
- Int64
Zeit in Millisekunden, dass der Alarm zuerst abläuft, mit der entsprechenden Uhr (je nach Alarmtyp).
- intervalMillis
- Int64
Intervall in Millisekunden zwischen nachfolgenden Wiederholungen des Alarms.
- operation
- PendingIntent
Aktion auszuführen, wenn der Alarm abläuft; kommt in der Regel von PendingIntent#getBroadcast
IntentSender.getBroadcast()
.
- Attribute
Hinweise
Planen Sie einen wiederholten Alarm. <b>Hinweis: Für Zeitplanungsvorgänge (Ticks, Timeouts usw.) ist es einfacher und viel effizienter zu verwenden android.os.Handler
.</b> Wenn bereits ein Alarm für denselben IntentSender geplant ist, wird er zuerst abgebrochen.
Wie #set
, außer Sie können auch eine Periode bereitstellen, in der der Alarm automatisch wiederholt wird. Dieser Alarm wird immer wieder wiederholt, bis er explizit entfernt wurde #cancel
. Wenn sich die angegebene Triggerzeit in der Vergangenheit befindet, wird der Alarm sofort ausgelöst, wobei die Alarmanzahl abhängig davon, wie weit in der Vergangenheit die Triggerzeit relativ zum Wiederholungsintervall ist.
Wenn ein Alarm verzögert wird (z. B. nach Systemschlaf, z. B. bei nicht _WAKEUP Alarmtypen), wird eine übersprungene Wiederholung so schnell wie möglich übermittelt. Danach werden zukünftige Alarme nach dem ursprünglichen Zeitplan geliefert; sie driften nicht im Laufe der Zeit. Wenn Sie beispielsweise einen wiederkehrenden Alarm für die Spitze jeder Stunde festgelegt haben, aber das Telefon von 7:45 bis 8:45 einschlafen hat, wird ein Alarm gesendet, sobald das Telefon weckt, dann wird der nächste Alarm um 9:00 Uhr gesendet.
Wenn Ihre Anwendung zulässt, dass die Lieferzeiten abdriften können, um zu gewährleisten, dass mindestens ein bestimmtes Zeitintervall immer zwischen Alarmen verstrichen ist, besteht der Ansatz darin, einmalige Alarme zu verwenden, die nächste zu planen, wenn sie jede Alarmzustellung behandeln.
<p class="note"><b>Note:</b> as of API 19, all repeating alarms are inexact. Wenn Ihre Anwendung genaue Lieferzeiten benötigt, muss sie einmal genaue Alarme verwenden und jedes Mal neu planen, wie oben beschrieben. Ältere Anwendungen, deren targetSdkVersion
Vorgänger api 19 ist, verfügen weiterhin über alle Alarme, einschließlich wiederholter Alarme, die genau behandelt werden.
Apps für die Zielbestimmung Build.VERSION_CODES#S
müssen die Kennzeichnung PendingIntent#FLAG_MUTABLE
für die PendingIntent
Verwendung zum Festlegen dieses Alarms festlegen, wenn die Alarmanzahl mit dem Schlüssel Intent#EXTRA_ALARM_COUNT
bereitgestellt werden soll.
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.
Gilt für:
Weitere Informationen
- 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)