wie GcmListenerService im Vordergrund ausgeführt wird

8

Ich habe manchmal ein Problem mit meinem GCM-Service, der geschlossen wird, wenn der RAM meines Smartphones automatisch gelöscht wird (lesen Sie dies , wenn Sie weitere Informationen benötigen.

Soweit ich es verstehe, wenn ich meinen Dienst im Vordergrund laufen lasse, sollte es dem System helfen, es mit RAM zu löschen. Die Methode von Service.class onStartCommand() wird normalerweise verwendet, um startForeground() method auszuführen.

Aber mit der neuesten Version der GCM-Implementierung ist es unmöglich, da die Methode onStartCommand() des übergeordneten GCMListenerService.class als final definiert ist und ich sie nicht überschreiben kann.

Also wie kann ich meinen gcm Empfänger auf Rum im Vordergrund stellen?

Hier ist mein manifester Teil über GCM.

%Vor%

Vielen Dank im Voraus.

    
user2957954 10.11.2015, 09:47
quelle

1 Antwort

0

Diese Frage ist ziemlich alt, aber ich denke, es ist es wert, für die Vorteile der zukünftigen Leser zu antworten.

Mit GCM (oder dem neuen FCM) gibt es KEINE BEDARF , um GCMListenerService im Vordergrund zu halten.
Tatsächlich ist es nicht nötig, die App überhaupt laufen zu lassen.

Wenn eine GCM-Nachricht vom System empfangen wird, wird Ihre App gestartet und der entsprechende Dienst (GCMListenerService in GCM oder FirebaseMessagingService in FCM) wird ausgeführt.

Das eigentliche Problem, das durch diesen Post aufgeworfen wird, ist:
GCM-Nachrichten werden nicht angezeigt, wenn die Anwendung nicht ausgeführt wird.

Dies liegt an einer speziellen Eigenschaft von xiaomi, die GCM-Nachrichten blockiert.
siehe: Autostart-Whitelist im Bereich Sicherheit.
Ссылка

    
Diego Giorgini 10.09.2016 18:43
quelle