Sprache

AlarmManager.SetExactAndAllowWhileIdle Methode

Definition

Überlädt

Name Beschreibung
SetExactAndAllowWhileIdle(AlarmType, Int64, PendingIntent)

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

SetExactAndAllowWhileIdle(AlarmType, Int64, String, IExecutor, AlarmManager+IOnAlarmListener)

Wie setExact(int,long,String,OnAlarmListener,Handler), dieser Alarm kann jedoch auch ausgeführt werden, wenn sich das System im Leerlaufmodus mit niedriger Leistung befindet.

SetExactAndAllowWhileIdle(AlarmType, Int64, PendingIntent)

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 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.

Gilt für:

SetExactAndAllowWhileIdle(AlarmType, Int64, String, IExecutor, AlarmManager+IOnAlarmListener)

Wie setExact(int,long,String,OnAlarmListener,Handler), dieser Alarm kann jedoch auch ausgeführt werden, wenn sich das System im Leerlaufmodus mit niedriger Leistung befindet.

[Android.Runtime.Register("setExactAndAllowWhileIdle", "(IJLjava/lang/String;Ljava/util/concurrent/Executor;Landroid/app/AlarmManager$OnAlarmListener;)V", "GetSetExactAndAllowWhileIdle_IJLjava_lang_String_Ljava_util_concurrent_Executor_Landroid_app_AlarmManager_OnAlarmListener_Handler", ApiSince=37)]
public virtual void SetExactAndAllowWhileIdle(Android.App.AlarmType type, long triggerAtMillis, string tag, Java.Util.Concurrent.IExecutor executor, Android.App.AlarmManager.IOnAlarmListener listener);
[<Android.Runtime.Register("setExactAndAllowWhileIdle", "(IJLjava/lang/String;Ljava/util/concurrent/Executor;Landroid/app/AlarmManager$OnAlarmListener;)V", "GetSetExactAndAllowWhileIdle_IJLjava_lang_String_Ljava_util_concurrent_Executor_Landroid_app_AlarmManager_OnAlarmListener_Handler", ApiSince=37)>]
abstract member SetExactAndAllowWhileIdle : Android.App.AlarmType * int64 * string * Java.Util.Concurrent.IExecutor * Android.App.AlarmManager.IOnAlarmListener -> unit
override this.SetExactAndAllowWhileIdle : Android.App.AlarmType * int64 * string * Java.Util.Concurrent.IExecutor * Android.App.AlarmManager.IOnAlarmListener -> unit

Parameter

type
AlarmType

Art des Alarms. Der Wert ist einer der folgenden: RTC_WAKEUP; RTC; ELAPSED_REALTIME_WAKEUP; ELAPSED_REALTIME

triggerAtMillis
Int64

Die genaue Zeit in Millisekunden, dass der Alarm geliefert werden soll, ausgedrückt in den Einheiten der entsprechenden Uhr (je nach Alarmtyp).

tag
String

Ein Zeichenfolgentag zum Identifizieren dieses Alarms in Protokollen und Akkuzuordnung. Dieser Wert darf nicht NULL sein.

executor
IExecutor

Der Executor, für den der Listener onAlarm()-Rückruf ausgeführt werden soll. Dieser Wert darf nicht NULL sein.

listener
AlarmManager.IOnAlarmListener

OnAlarmListener-Instanz, deren onAlarm()-Methode aufgerufen wird, wenn die Alarmzeit erreicht wird. Dieser Wert darf nicht NULL sein.

Attribute

Hinweise

Wie setExact(int,long,String,OnAlarmListener,Handler), dieser Alarm kann jedoch auch ausgeführt werden, wenn sich das System im Leerlaufmodus mit niedriger Leistung befindet.

Listener-basierte Alarme können vom Android-System abgebrochen werden, wenn der aufrufende Prozess keine Komponenten mehr ausgeführt wird, z. B. Aktivität, Dienst oder ContentProvider, sodass Sie diese APIs nur verwenden müssen, wenn Sie nach Abschluss der aktuellen Komponente keine Alarme empfangen müssen, und stellen Sie außerdem sicher, dass sie (OnAlarmListener) abbrechen(OnAlarmListener). Wenn Sie diese APIs beispielsweise aus einer Aktivität verwenden, stellen Sie sicher, dass die entsprechenden Alarme abgebrochen werden, wenn die Aktivität abgeschlossen ist. Wenn Sie den Alarm auch danach erhalten müssen, verwenden Sie die PendingIntent-basierten APIs.

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.

Gilt für: