WebRequests - wie am besten?

  • Hallo,


    ich habe eine allgemeine Frage zum Thema Netzwerkprogrammierung unter Android.


    Mein Problem:
    Ich muss Daten aus dem Internet (über eine API - HTTP Post Reqeusts) abfragen und dann im UI korrekt anzeigen. Wie löse ich am besten dieses Problem? Ist es vernünftiger hier asynchrone Requests zu verwenden? Wenn ja, bietet sich da die Lösung durch den schon vorhandenen AsyncTask? Jedoch benötige ich hier für jeden API-Request eine neue Implementierung des AsyncTasks, oder habe ich hier etwas falsch verstanden? Oder ist es besser es allgemein selbst zu implementieren (mit ResponseHandler....)
    Oder sind hier überhaupt asynchrone Aufrufe von nöten? Denn prinzipiell reicht es mir wenn eine Info mit "wird geladen" erscheint und nach Vollendung des Requests die Daten angezeigt werden.


    Vielleicht habe ich auch ganz den falschen Ansatz? Wie sollte man so etwas am besten lösen?


    Danke.


    mfg
    razor01

  • Hi razor,


    erstmal sollte man bei Netzwerkprogrammierung immer auf asynchrone Aufrufe setzen da der UI Thread nach glaub ich 3 oder 5 sec warten blockiert und dem User ne Meldung angezeigt wird das irgendwas mit dem App nicht stimmt.


    Ja die einfachste Umsetzung ist die AsyncTasks Classe bzw bietet sie sich in deinem Problem einfach am besten an.


    PseudoCode:


    Zitat

    Jedoch benötige ich hier für jeden API-Request eine neue Implementierung des AsyncTasks, oder habe ich hier etwas falsch verstanden?


    Das kommt darauf an ob der POST Aufruf nur in einer Activtiy geschieht oder in mehrer erfolgen soll.



    Mfg Titus

  • hi titus,


    danke für deine antwort.


    So einen ähnlichen Ansatz hatte ich bereits implementiert. Hatte dabei aber ein paar Probleme mit meinen Parametern. Ich hatte da nicht verschiedene URLS, sondern BasicNameValuePairs als Übergabeparameter benutzt und als Rückgabe von der API bekomme ich entweder ein Object das ich dann caste oder eine Liste von Objekten und da gab es Probleme mit dem AsyncTask. Es kann natürlich auch sein das ich mich irre und das normalerweise funktionieren sollte und es einfach ein Implementierungsfehler meinerseits war.


    Ja, die Aufrufe erfolgen in verschiedenen Activitys. Das heißt, je nachdem wie ich meine Objekte verarbeitet haben will brauche ich einen neuen AsyncTask. Denn die Verarbeitung der empfangenen Daten und die Ausgabe auf die UI erfolgt im AsyncTask? Habe ich das so richtig verstanden?


    mfg razor

  • Hi razor01,


    warum übergibt du nicht einfach die Daten für die BasicNameValuePairs .
    Vielleicht so:



    und in der Funktion SchickenDaten(parm1,parm2,parm3) baust du dann die BasicNameValuePairs zusammen und versendest sie per POST.


    Das mit den unterschiedlichen Rückgabewerte ist natürlich ein Problem aber könnte mann die denn nicht einfach in einen Wert zusammenfassen zbsp immer einer Liste zurückgeben. Wenn halt nur ein Objekt vom server kommt hat halt die Liste nur ein Element.
    (Für genauere Antworten bräuchte man nartürlich mehr detailwissen über deine Client Server Kommunikation)


    Zitat

    Denn die Verarbeitung der empfangenen Daten und die Ausgabe auf die UI erfolgt im AsyncTask? Habe ich das so richtig verstanden?


    Ja

    Mfg Titus

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!