"Einige Beispielcodes" sind nicht so einfach, wenn es darum geht AlarmManager
.
Hier ist ein Ausschnitt, der das Setup von zeigt AlarmManager
:
AlarmManager mgr=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent i=new Intent(context, OnAlarmReceiver.class);
PendingIntent pi=PendingIntent.getBroadcast(context, 0, i, 0);
mgr.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(), PERIOD, pi);
In diesem Beispiel verwende ich setRepeating()
. Wenn Sie einen One-Shot-Alarm wünschen, verwenden Sie einfach set()
. Stellen Sie sicher, dass Sie die Zeit für den Start des Alarms in derselben Zeitbasis angeben, die Sie im Anfangsparameter für verwendet haben set()
. In meinem obigen Beispiel verwende ich AlarmManager.ELAPSED_REALTIME_WAKEUP
, also ist meine Zeitbasis SystemClock.elapsedRealtime()
.
Hier ist ein größeres Beispielprojekt, das diese Technik zeigt.
Es gibt einige gute Beispiele im Android-Beispielcode
Die zum Auschecken sind:
Zunächst benötigen Sie einen Empfänger, der Ihren Alarm abhören kann, wenn er ausgelöst wird. Fügen Sie Ihrer AndroidManifest.xml-Datei Folgendes hinzu
Erstellen Sie dann die folgende Klasse
Verwenden Sie dann Folgendes, um einen Alarm auszulösen (z. B. in Ihrer Hauptaktivität):
.
Oder, noch besser, erstellen Sie eine Klasse, die alles handhabt, und verwenden Sie sie so
Auf diese Weise haben Sie alles an einem Ort (vergessen Sie nicht, die zu bearbeiten
AndroidManifest.xml
)quelle
Was Sie tun müssen, ist zuerst die Absicht zu erstellen, die Sie planen müssen. Erhalten Sie dann den anstehenden Inhalt dieser Absicht. Sie können Aktivitäten, Dienste und Sendungen planen. So planen Sie eine Aktivität, z. B. MyActivity:
Geben Sie alarmManager diesen ausstehenden Inhalt:
Jetzt wird MyActivity nach 5 Sekunden nach dem Start der Anwendung gestartet, unabhängig davon , ob Sie Ihre Anwendung oder Ihr Gerät in den Ruhezustand versetzt haben (aufgrund der Option RTC_WAKEUP). Sie können den vollständigen Beispielcode lesen. Planen von Aktivitäten, Diensten und Broadcasts #Android
quelle
Ich wollte aber <50 Wiederholungen kommentieren, also geht es los. Freundliche Erinnerung: Wenn Sie mit 5.1 oder höher arbeiten und ein Intervall von weniger als einer Minute verwenden, geschieht Folgendes:
Siehe hier .
quelle
Einige Beispielcodes, wenn Sie einen Dienst vom Alarmmanager aus aufrufen möchten:
Sie müssen nicht nach Benutzerberechtigungen fragen.
quelle
Ein AlarmManager wird verwendet, um zu einem bestimmten Zeitpunkt Code auszulösen.
Um einen Alarm Manager zu starten, müssen Sie zuerst die Instanz vom System abrufen. Übergeben Sie dann den PendingIntent, der zu einem von Ihnen angegebenen zukünftigen Zeitpunkt ausgeführt wird
Sie müssen vorsichtig sein, wenn Sie den Alarm Manager verwenden. Normalerweise kann ein Alarmmanager nicht vor einer Minute wiederholen. Auch im Energiesparmodus kann die Dauer auf bis zu 15 Minuten erhöht werden.
quelle