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
Alarmtyp.
- triggerAtMillis
- Int64
Zeit in Millisekunden, in der der Alarm zuerst mit der entsprechenden Uhr ausgelöst werden soll (abhängig vom Alarmtyp).
- intervalMillis
- Int64
Intervall in Millisekunden zwischen nachfolgenden Wiederholungen des Alarms.
- operation
- PendingIntent
Aktion, die ausgeführt werden soll, wenn der Alarm ausgeht; stammt in der Regel von PendingIntent#getBroadcast
IntentSender.getBroadcast()
.
- Attribute
Hinweise
Planen Sie einen wiederholten Alarm. <b>Hinweis: Für Zeitsteuerungsvorgänge (Ticks, Timeouts usw.) ist die Verwendung android.os.Handler
von einfacher und viel effizienter.</b> Wenn bereits ein Alarm für denselben IntentSender geplant ist, wird er zuerst abgebrochen.
Wie #set
, außer Sie können auch einen Zeitraum angeben, in dem sich der Alarm automatisch wiederholt. Dieser Alarm wird weiterhin wiederholt, bis explizit mit #cancel
entfernt wird. Wenn die angegebene Triggerzeit in der Vergangenheit liegt, wird der Alarm sofort ausgelöst, wobei die Alarmanzahl davon abhängt, wie weit die Auslösezeit in der Vergangenheit relativ zum Wiederholungsintervall liegt.
Wenn ein Alarm verzögert wird (z. B. durch den Systemmodus, z. B. für 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 im Laufe der Zeit nicht ab. Wenn Sie beispielsweise einen wiederkehrenden Alarm für den Anfang jeder Stunde festgelegt haben, aber das Telefon von 7:45 bis 8:45 Uhr geschlafen hat, wird ein Alarm gesendet, sobald das Telefon erwacht, dann wird der nächste Alarm um 9:00 Uhr gesendet.
Wenn Ihre Anwendung die Lieferzeiten driften lassen möchte, um zu gewährleisten, dass mindestens ein bestimmtes Zeitintervall immer zwischen Alarmen verstrichen ist, besteht der ansatzweise darin, einmal alarmierende Alarme zu verwenden und den nächsten Alarm selbst zu planen, wenn jede Alarmzustellung verarbeitet wird.
<p class="note"><b>Hinweis:</b> ab API 19 sind alle wiederholten Alarme ungenau. Wenn Ihre Anwendung genaue Lieferzeiten benötigt, muss sie einmalige exakte Alarme verwenden und wie oben beschrieben jedes Mal neu planen. Ältere Anwendungen, deren targetSdkVersion
Vorgänger api 19 ist, werden weiterhin alle Alarme, einschließlich sich wiederholender Alarme, als genau behandelt.
Apps, die als Ziel Build.VERSION_CODES#S
dienen, müssen das Flag PendingIntent#FLAG_MUTABLE
für das festlegen, das PendingIntent
zum Festlegen dieses Alarms verwendet wird, wenn die Alarmanzahl mit dem Schlüssel Intent#EXTRA_ALARM_COUNT
angegeben werden soll.
Teile dieser Seite sind Änderungen, die auf Arbeiten basieren, die vom Android Open Source Project erstellt und freigegeben wurden und gemäß den In 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)