Entmystifizierung der Verwendung von AlarmManager in Android
Der AlarmManager ist ein leistungsstarkes Tool in Android, mit dem Entwickler die Ausführung von Aufgaben zu bestimmten Zeiten planen können . Dies ist besonders nützlich, wenn eine App bestimmte Aktionen ausführen muss, auch wenn sie nicht ausgeführt wird. Allerdings kann es für Neulinge in der Android-Entwicklung entmutigend sein, die Feinheiten zu verstehen.
Frage:
Ich habe Probleme mit AlarmManager. Kann ich ein funktionierendes Beispiel zum Auslösen von Code nach 20 erhalten? Minuten?
Lösung:
Einrichten AlarmManager für eine verzögerte Aufgabe umfasst mehrere Schritte. Hier ist ein umfassender Codeausschnitt, der seine Verwendung demonstriert:
// Get the AlarmManager instance from the Android system AlarmManager mgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); // Create an Intent to be triggered for the alarm Intent intent = new Intent(context, OnAlarmReceiver.class); // Convert the Intent into a PendingIntent to pass it to the AlarmManager PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0); // Set up a repeating alarm based on elapsed real-world time, with a trigger every 20 minutes mgr.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(), 20 * 60 * 1000, pendingIntent);
In diesem Beispiel erstellen wir mithilfe der setRepeating()-Methode einen sich wiederholenden Alarm, der alle 20 Minuten ausgelöst wird. Der erste Parameter gibt die Zeitbasis an, in diesem Fall die verstrichene Echtzeitzeit (seit dem Gerätestart). Der zweite Parameter repräsentiert die aktuelle Uhrzeit. Der dritte Parameter gibt das Intervall zwischen den Alarmen an und der vierte Parameter ist der PendingIntent, der die auszulösende Absicht kapselt.
Bitte beachten Sie, dass es wichtig ist, die Zeitbasis bei der Verwendung des AlarmManagers sorgfältig abzuwägen, da sie Auswirkungen haben kann die Genauigkeit der Terminplanung. Beispielsweise würde die Verwendung von AlarmManager.RTC_WAKEUP anstelle von ELAPSED_REALTIME_WAKEUP die tatsächliche Zeit des Geräts verwenden, die durch Anpassungen wie die Sommerzeit beeinflusst werden kann.
Außerdem ist es erwähnenswert, dass der AlarmManager möglicherweise insbesondere keine genauen Ausführungszeiten garantiert im Energiesparmodus. Wenn Ihre App ein präzises Timing erfordert, erkunden Sie alternative Lösungen wie JobScheduler.
Das obige ist der detaillierte Inhalt vonWie kann ich AlarmManager in Android verwenden, um Code nach 20 Minuten auszulösen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!