2016-05-22 4 views
0

Ich bin ein Java-Entwickler ohne Android-Erfahrung, und ich versuche, schnell eine App zusammen zu stellen. Es scheint, dass das, was ich normalerweise in Java machen würde, nicht hilft.Asynchrone Anfragen an den Server in einer Schleife - Android

In diesem Stadium ist die Einfachheit der Implementierung wichtiger als Effizienz oder Stil - ich werde die Letzteren aussortieren, wenn es mehr Zeit gibt und ich habe mich richtig erzogen, wenn es um Android geht.

Benutzer können die App verwenden, um Unterstützung anzufordern, oder sie denjenigen anbieten, die sie benötigen. Bei der Anfrage nach Support wird eine Anfrage mit den Details an den Server gesendet, und das ist erledigt.

Jetzt möchte ich, dass die App eine asynchrone Anforderung an den Server sendet, um einmal pro Minute über ausstehende Supportanfragen benachrichtigt zu werden. Ich denke, es ist das gleiche Prinzip von WhatsApp zu überprüfen, ob es neue Nachrichten auf dem Server gibt.

Ich versuchte dies in einem separaten Thread mit einer Endlosschleife, die für 60 Sekunden ruht, aber aus bestimmten Gründen, die die UI daran hindert zu arbeiten.

Von dem, was ich jetzt verstehe, sollte ich einen Dienst mit einem Looper, einem Timer und einem Handler verwenden. Ist das korrekt?

Kann mir jemand auf ein Tutorial hinweisen, das Schritt für Schritt erklärt, was genau zu tun ist? Oder schlagen Sie zumindest Keywords vor, nach denen ich suchen sollte?

Alles, was ich bisher gefunden habe, sind Code-Schnipsel, die nicht zusammenarbeiten, wenn ich versuche, sie zusammenzusetzen. Vielleicht, weil ich nicht nach den richtigen Begriffen suche?

Danke, Dan

Antwort

1

Sie könnten den folgenden Ansatz versuchen:

  • einen Dienst erstellen, die im Hintergrund läuft für neu hinzugefügte Daten auf dem Server zu überprüfen.
  • Wenn Sie es bevorzugen, es benutzergesteuert zu machen, können Sie Benutzer die Liste auf dem Gerät aktualisieren lassen, um die Anforderungen an den Server tatsächlich auszulösen.
  • Bibliotheken wie Retrofit können Ihnen das Leben erleichtern, wenn es um HTTP-Anfragen geht - vermeiden Sie dabei immer den Haupt-UI-Thread.
  • Eine andere Bibliothek, die Sie verwenden könnten, um Ihre Anwendung mithilfe von Ereignissen zu entkoppeln, ist EventBus. Angenommen, Sie verwenden einen Hintergrunddienst, um nach Updates zu suchen, können Sie EventBus verwenden, um Ihre Benutzeroberflächen zu aktualisieren, wenn etwas Neues vom Server über eine GET-Anforderung abgerufen wird.

Ich hoffe, dies gibt Ihnen eine Idee, wie Sie mit der Lösung fortfahren können. Viel Glück!

Verwandte Themen