Ich arbeite an einer App, die einen AlarmManager beinhaltet, und ich kann es nicht scheinen zu schießen. Ich benutzte ursprünglich einen Handler, aber ich wechselte zum AlarmManager, damit ich das Telefon aus dem Schlaf aufwecken konnte.AlarmManager nicht regelmäßig feuern
Hier ist, was ich bisher:
int timeBetweeninMillis = 3 * 60000;
if (ManagerService.serviceRunning) {
Intent alarmIntent = new Intent(AlarmReceiver.ACTION_RECEIVE);
PendingIntent alarmPendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 400, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT);
mAlarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, (SystemClock.elapsedRealtime() + timeBetweeninMillis), alarmPendingIntent);
}
Der Alarmmanager entweder nicht extrem spät Feuer oder Feuer wird (wie 10 Minuten nach).
Die App ist mit API 16 geschrieben und 19.
Sie mit API auf einem Telefon getestet wird für Ihre Hilfe danken!
Das hat nicht wirklich etwas zu tun scheinen. Mein AlarmManager feuert immer noch nicht. Verkenne ich, wie man den AlarmManager benutzt? Ich hatte den Eindruck, dass der obige Code ausgelöst werden sollte, nachdem 'timeBetweeninMillis' Millisekunden vergangen sind. Außerdem verhindert ManagerService.serviceRunning nicht, dass der Code ausgeführt wird. –
sehe meine Bearbeitung, könnte die Antwort sein – marmor
Gibt es eine Möglichkeit, das zu beheben, ohne '.setExactAndAllowWhileIdle' zu verwenden? Diese Funktion benötigt API 23 und ich verwende API 19 –