Freigeben über


AlarmManager.SetExactAndAllowWhileIdle Methode

Definition

Wie #setExact(int, long, PendingIntent), aber dieser Alarm kann auch ausgeführt werden, wenn sich das System im Leerlaufmodus mit niedriger Leistung befindet.

[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

Parameter

type
AlarmType

Art des Alarms.

triggerAtMillis
Int64

Zeit in Millisekunden, die der Alarm abläuft, mit der entsprechenden Uhr (je nach Alarmtyp).

operation
PendingIntent

Aktion auszuführen, wenn der Alarm abläuft; kommt in der Regel von PendingIntent#getBroadcast IntentSender.getBroadcast().

Attribute

Hinweise

Wie #setExact(int, long, PendingIntent), aber dieser Alarm kann auch ausgeführt werden, wenn sich das System im Leerlaufmodus mit niedriger Leistung befindet. Wenn Sie keine genaue Planung des Alarms benötigen, aber trotzdem während des Leerlaufs ausgeführt werden müssen, sollten Sie die Verwendung in Betracht ziehen #setAndAllowWhileIdle. Diese Art von Alarm muss <nur></b> für Situationen verwendet werden, in denen es tatsächlich erforderlich ist, dass der Alarm im Leerlauf abgeht - ein vernünftiges Beispiel wäre für eine Kalenderbenachrichtigung, die einen Sound machen sollte, damit der Benutzer darauf aufmerksam wird. Wenn der Alarm verteilt wird, wird die App auch für ca. 10 Sekunden zur temporären Ausnahmeliste des Systems hinzugefügt, damit diese Anwendung weitere Wake-Sperren erwerben kann, in denen ihre Arbeit abgeschlossen werden kann.</p>

Diese Alarme können sich erheblich auf den Stromverbrauch des Geräts auswirken, wenn sie im Leerlauf sind (und somit erhebliche Akkuschulden an der App-Planung verursachen), sodass sie mit Sorgfalt verwendet werden sollten. Um Missbrauch zu verringern, gibt es Einschränkungen darüber, wie häufig diese Alarme für eine bestimmte Anwendung abläuft. Im normalen Systembetrieb werden diese Alarme nicht mehr als jede Minute verteilt (zu diesem Zeitpunkt wird jeder solche ausstehende Alarm verteilt); wenn im Leerlaufmodus diese Dauer erheblich länger sein kann, z. B. 15 Minuten.

Im Gegensatz zu anderen Alarmen ist das System frei, diese Art von Alarm neu zu planen, um mit allen anderen Alarmen, auch mit denen aus derselben App, außer Ordnung zu kommen. Dies geschieht eindeutig, wenn das Gerät im Leerlauf ist (da dieser Alarm während des Leerlaufs ausgeschaltet werden kann, wenn andere Alarme aus der App bis zu einem späteren Zeitpunkt gehalten werden), aber auch dann auftreten, wenn er nicht im Leerlauf ist. Beachten Sie, dass sich das Betriebssystem mehr Flexibilität für die Planung dieser Alarme als normale genaue Alarme erlaubt, da sich die Anwendung für dieses Verhalten entschieden hat. Wenn das Gerät im Leerlauf ist, kann es noch mehr Freiheiten mit der Planung dauern, um die Akkulaufzeit zu optimieren.

<p class="note"><strong>Note:</strong> Starting with Build.VERSION_CODES#S, apps targeting SDK level 31 or higher need to request the Manifest.permission#SCHEDULE_EXACT_ALARM SCHEDULE_EXACT_ALARM permission to use this API, unless the app is exempt from battery restrictions. Der Benutzer und das System können diese Berechtigung über den Speziellen App-Zugriffsbildschirm in den Einstellungen widerrufen.

<p class="note"><strong>Note:</strong> Exact alarms should only be used for user-facing features. Weitere Informationen finden Sie unter "Genaue Alarmberechtigung".

Alarme, die über diese API geplant werden, können auch dann einen Vordergrunddienst starten, wenn sich die App im Hintergrund befindet.

Java-Dokumentation für android.app.AlarmManager.setExactAndAllowWhileIdle(int, long, android.app.PendingIntent).

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: