2017-03-07 1 views
0

Ich entwickle eine benutzerdefinierte Chat-Anwendung.Android-Hintergrund-Service: CPU-und Netzwerknutzung Zweifel

Gesendete Nachrichten werden mit einem einfachen POST auf meinem Server gespeichert.

Ein Dienst, der im Hintergrund ausgeführt wird, ist verantwortlich für die Überprüfung mit einem anderen POST alle 5 Sekunden, wenn es neue Nachrichten für den aktuellen Benutzer gibt und eine Benachrichtigung an ihn senden.

Ich bin ein bisschen besorgt über Netzwerk-und CPU-Auslastung, weil ich weiß, dass die Internetverbindung den ganzen Tag verwendet wird.

Ich habe diesen Ansatz verwendet, weil ich einige Daten auf meinem Server-Code vor der Auslieferung eine Benachrichtigung an den Empfänger manipulieren muss.

Ein Beispiel ist, dass ich einige Benutzer als Admin zugewiesen haben. Der Benutzername der Benutzer ist ihre E-Mail. Wenn eine Nachricht von einem der Admins gesendet wird, überschreibe ich ihren Benutzernamen (also ihre E-Mail) mit dem Anwendungsnamen, bevor die Benachrichtigung an den Empfänger gesendet wird.

Ist dies der beste Ansatz, um eine benutzerdefinierte Chat-Anwendung zu erstellen?

+0

Sie schreiben ihre E-Mail-Adresse immer dann um, wenn sie eine Nachricht senden? Warum brauchen Sie das auf der Serverseite, nicht auf der App-Seite? – kristyna

+0

Ja, ich mache es. Einfach weil jemand es dekompilieren und dieses Verhalten ändern kann. Magisch in der Lage zu sein, Nachrichten an die ganze Community zu senden ... – Seed3Key

Antwort

0

Ich weiß nicht genau, warum Sie diesen Anwendungsfall verwendet haben, aber eine wirklich einfache Lösung bietet Firebase.

Sie können etwas darüber lesen here. Grundsätzlich müssen Sie:

  1. Erstellen Sie einige Layouts
  2. Zuhörer hinzufügen auf „Nachricht senden“ klicken, die Nachricht an Feuerbasis Echtzeit-Datenbank
  3. FirebaseListAdapter erstellen hinzufügen wird, die Nachrichten an Benutzer angezeigt werden

von database docs

alle Ihre Kunden teilen sich ein Realtime-Datenbank i nstance und erhalten automatisch Updates mit den neuesten Daten.

Von meinem Understading müssen Sie nicht alle 5 Sekunden überprüfen, ob eine Nachricht wartet. Firebase behandelt es für Sie.

+0

Grundsätzlich habe ich ein paar Benutzer, die Admins sind. Wenn sie eine Chatnachricht senden, überschreibe ich in meinem Server php Code ihre Details unter Verwendung eines hardcoded Namens. Mit Firebase kann ich keine Kontrolle über solche Daten haben. Hast du eine Idee, mich zu empfehlen? – Seed3Key