Kontinuierliche Synchronisierung mit Server

  • 4 Antworten
  • Letztes Antwortdatum
P

Piwo72

Neues Mitglied
0
Hi zusammen,

ich habe einen Server mit einem REST-Interface. Ich möchte eine App schreiben, die über die REST Schnittstelle mit dem Server interagiert und Daten im JSON-Format erhält. Soweit kein Problem.
Ich möchte jedoch, dass die App auch im Hintergrund dauerhaft in einem bestimmten Interval (alle 45 min) einen HTTP-Request sendet und das Ergebnis interpretiert.

Wie implementiere ich so etwas am besten? Ein Started Service mit integriertem Timer? Ein Broadcast-receiver? Kennt jemand ein gutes Modell was diesen Fall erfüllt?

Danke im vorraus :)
 
Alarmmanager plus Broadcast Receiver. So wie im Link einfach mal probieren, nur startest du dann im onReceive dein Background Thread oder service was auch immer und setzt einen neuen Alarm.

Notification mit AlarmManager anzeigen
 
Du kannst natürlich auch einen Service permanent laufen lassen, solange du in ihm keine aufwendige Aktionen ausführst.
Bei Deiner Idee solltest du im Kopf halten, dass das Datenvolumen der meisten Smartphones beschränkt ist. Viele haben nur 200 bis 300 MB.

Für die Internetkommunikation solltest nur die Klasse HttpUrlConnection verwenden. Es gibt zwar viele Beispiele mit Apache HTTP Client, doch ab Android 6 wird die Implementation relativ aufwendig.

HttpURLConnection | Android Developers
 
Anderer Ansatz:
Dein Server sollte per GCM eine Nachricht schicken, wenn für den Nutzer neue Daten vorliegen. Es ist relativ unsinnig alle paar Minuten zu fragen ob es was neues gibt, wenn es nichts neues gibt.
Und erst dann updaten wenn du eine Push Nachricht vom Server bekommst.

Cloud Messaging  |  Google Developers
 
Eher gleicher Ansatz, nur andere Technik. Der Trick bei Push Notification ist es, die Menge der zu übertragende Daten zu beschränken. Soweit ist weiß, ist GCM eine langlebende TCP - Verbindung.
 
Zurück
Oben Unten