0

Ich arbeite an einer Anwendung im Zusammenhang mit Voip & IM (Chat-Anwendung). Bis Android OS 5.0 funktioniert es gut und keine Probleme vom Client auch. Aber ab Android OS 5.1.1 stehen wir vor Problemen.Dienste stoppen automatisch von Android OS 5.1.1

Probleme:

  • Wenn die App in Vordergrund und wenn das Gerät in den Schlafmodus geht, ist es gut funktioniert.
  • Wenn die App in Hintergrund ist und wenn Gerät in den Ruhezustand nach 10 Minuten geht, werden alle Dienste automatisch gestoppt.

Testing:

  • Für den Test habe ich eine Timer-Task-Protokolle für alle 1 Minute zu drucken. Also, wenn ich die Anwendung schließe (bedeutet, wenn die App im Hintergrund ist)

  • Till android OS 5.0 Protokolle werden kontinuierlich gedruckt.

  • Von android OS 5.1.1 weiter nach dem Schlafmodus, nach 10 Minuten Protokolle werden nicht gedruckt. Timer-Task stoppt

Gleiches Problem, das ich für meine Anwendung auch gegenüberstelle.

Nachdem ich einige R & D gemacht habe, lernte ich über Doze-Modus und App-Optimierung kennen. Ist es irgendwie damit verbunden, dass Dienste automatisch im Hintergrund ausgeführt werden?

Wenn ja, kann jemand bitte lassen Sie mich wissen, wie dieses Problem zu überwinden.

+0

Verwenden Sie foregroundService? –

+0

Doze-Modus wird zuerst in Marshmallow eingeführt und in Nougat neu definiert. Wenn Ihr Dienst in Android Version 5.1 beendet wird.1 dann können Sie andere Probleme haben. Überprüfen Sie einfach, haben Sie 'START_STICKY' für Ihren Service verwendet? – tahsinRupam

+0

@tahsinRupam Ja, ich habe START_STICKY verwendet. Bis 5.0 funktioniert es gut. Wir sehen uns diesem Problem ab 5.1.1 gegenüber, und auch das Testen der Anwendungs-Timer-Aufgabe funktioniert nach dem Wechsel in den Schlafmodus nicht. – user2384424

Antwort

1

Dies ist eine neue Sache, die Google getan hat, um unerwünschte Batterienutzung zu verhindern. Bei neuen Versionen sind die Hintergrunddienste eingeschränkt, um die Lebensdauer der Batterie zu verlängern. Der Android-Dienst verbraucht fast dasselbe wie die Anwendung, die im Vordergrund ausgeführt wird. Selbst wenn die App nicht läuft, laufen möglicherweise ihre Dienste und verwenden Speicher und Akku.

Wenn Sie irgendeine Art von Hintergrundprozess verwenden müssen, versuchen Sie Job Scheduler zu verwenden, was für Sie nützlich sein kann.

Die Job Scheduler gruppiert die Aufgabe und führt die Hintergrundaufgabe basierend auf den Einschränkungen aus, die wir in der Implementierung bereitstellen. Diese haben eine Begrenzung auf minimale API unterstützen 21

Um auf niedrigere Version zu unterstützen, können Sie Firebase JobDispatcher verwenden, die von API unterstützen 9.

Ich persönlich bevor Firebase JobDispatcher

Diese link Ihnen helfen, mehr zu verstehen, über Scheduler und seine Implementierung.

Verwandte Themen