Es ist ein Code, der eine Aktion zu einem bestimmten Zeitpunkt genau mit dem AlarmManager
(am nächsten Tag um 7.00 Uhr) auslösen soll:Alarmmanager würde das Telefon nicht aufwachen
val manager = getSystemService(Context.ALARM_SERVICE) as AlarmManager
val intent = Intent(this, FooIntentService::class.java)
val pendingIntent = PendingIntent.getService(this, 0, intent, 0)
// Set alarm
val calendar = Calendar.getInstance()
calendar.timeInMillis = System.currentTimeMillis()
calendar.set(Calendar.HOUR_OF_DAY, 7)
calendar.set(Calendar.MINUTE, 0)
// Set tomorrow
calendar.add(Calendar.DATE, 1)
manager.set(AlarmManager.RTC_WAKEUP, calendar.timeInMillis, pendingIntent)
ich diese getestet haben Code, um das Ereignis in bis zu 5 Minuten auszulösen, die App zu schließen (alle Apps zu schließen) und sie in den Ruhezustand zu versetzen (Drücken der Hold-Taste) - und es funktioniert. Aber wenn ich die Zeit für morgen um 7:00 Uhr einstelle (was weit mehr als 5 Minuten von jetzt an ist) - würde es niemals auslösen, bis ich es entsperrt habe (manuell aufgewacht). Im Moment wachte ich auf - die Aktion hat sofort ausgelöst.
Frage: ist der Beispielcode habe ich für die Einstellung geplante Veranstaltung in meinem Fall korrekt zur Verfügung gestellt?
Vielleicht dösen: https://stackoverflow.com/questions/35629268/alarm-manager-issue-in-android-6-0-doze-mode – Alex
@ Alex Danke für das Teilen, das könnte die Antworten. Ich werde untersuchen und das Ergebnis in diesem Thread bereitstellen. – Oleg
Werfen Sie einen Blick auf den 2. Teil der folgenden Antwort: https://Stackoverflow.com/a/39739886/3363481 – earthw0rmjim