Ich möchte alle 30 Sekunden android Alarmmanager feuern (auch meine Anwendung in Tiefschlaf Stimmung im Hintergrund), da ich alle 30sec GPS-Standort sammeln und auf den Server hochladen muss.Android Repeating Alarm Manager in allen 30 Sekunden
AlarmManager mgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(this, OnAlarmReceiver.class);
PendingIntent pi = PendingIntent.getBroadcast(this, 0, i, 0);
mgr.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime() + 30000,
30000,
pi);
Ich habe den Einsatz über Code und es funktioniert gut, wenn das Gerät ist in nicht schlafen mood.But scheint, wie es nicht richtig in Schlaf Stimmung funktioniert. Nach einigen Zeiten ist es Brände in 5-Minuten-Intervallen.
Meine Anwendung läuft auf Android 5.0.2 Samsung Tablet.
ich gefunden habe, gibt es ein Problem zu Alarm Manager im Zusammenhang mit Android 5.0 oben (speziell Samsung-Geräte) https://code.google.com/p/android/issues/detail?id=82001
jede Abhilfe für dieses?
Danke.
Wenn dies auf einen Energiesparmodus zurückzuführen ist, besteht die einzige Möglichkeit darin, Ihre App manuell auf die weiße Liste zu setzen und Ihre Benutzer per Dialog darüber zu informieren. Ich hatte ein ähnliches Problem auf Huawei Mate 7 (Lollipop & Marshmallow), sie hatten auch ihre eigene Power-Management implementiert und es gibt keine Möglichkeit, dies loszuwerden. – Opiatefuchs
Und eine Warnung: In zukünftigen Versionen, oder besser seit Marshmallow, können Sie diese Methode nicht verwenden (setRepeating). Und der AlarmManager kann nur alle 9 Minuten ausgelöst werden. Daher ist es eine schwierige Aufgabe, und Sie müssen einige Umgehungslösungen durchführen. Siehe Doze Mode Docs: https://developer.android.com/training/monitoring-device-state/doze-standby.html – Opiatefuchs
Ok danke. Gibt es eine andere Möglichkeit, den GPS-Standort im Hintergrund zu finden? Meine Anwendung muss den GPS-Standort mehr als einen Tag erfassen. Ich denke Service ist keine zuverlässige Lösung dafür und die meisten Beispiele verwenden Alarm Manager/Wake Lock, um dies zu erreichen. –