AlarmManager.SetExactAndAllowWhileIdle 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.
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
int: Art des Alarms. Der Wert ist eine der folgenden: RTC_WAKEUP RTC-ELAPSED_REALTIME_WAKEUP ELAPSED_REALTIME
- triggerAtMillis
- Int64
lang: Zeit in Millisekunden, die der Alarm abläuft, mit der entsprechenden Uhr (je nach Alarmtyp).
- operation
- PendingIntent
PendingIntent: Aktion, die ausgeführt werden soll, wenn der Alarm abläuft; in der Regel stammt von IntentSender.getBroadcast(). Dieser Wert darf nicht NULL sein.
- 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 dennoch im Leerlauf ausgeführt werden müssen, erwägen Sie die Verwendung von setAndAllowWhileIdle(int, long, PendingIntent). Diese Art von Alarm darf nur 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 es kennt. 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.
Diese Alarme können sich erheblich auf den Stromverbrauch des Geräts auswirken, wenn sie im Leerlauf sind (und damit 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.
Hinweis: Beginnend mit Build.VERSION_CODES. S, Apps für SDK-Ebene 31 oder höher müssen die SCHEDULE_EXACT_ALARM Berechtigung für die Verwendung dieser API anfordern, es sei denn, die App ist von Akkueinschränkungen ausgenommen. Der Benutzer und das System können diese Berechtigung über den Speziellen App-Zugriffsbildschirm in den Einstellungen widerrufen. Hinweis: Genaue Alarme sollten nur für Benutzerfeatures verwendet werden. 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.
Siehe auch:
Android-Referenz für android.app.AlarmManager.setExactAndAllowWhileIdle.
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.