Richtiger Ansatz zum Aufruf des Web Service (API) aus der Fragment-Klasse

9

Ich muss wissen, bei welcher Fragment-Callback-Methode wir einen Web-Service aufrufen sollen, mit dem nach dem Comeback wieder der Fragment-Web-Service nicht erneut aufrufen soll.

Zum Beispiel. Ich habe eine Fragmentklasse MyFragment.java

%Vor%

Ich muss wissen, welche Callback-Methode ich Webservice aufrufen muss, um die UI des Fragments zu aktualisieren. Im Moment rufe ich Webdienste von onCreateView method an. aber ich muss wissen, was der beste Weg sein sollte, Web-Service von Fragment zu nennen.

    
Dwivedi Ji 28.04.2014, 05:27
quelle

2 Antworten

5

Wenn ich Ihr Problem richtig verstanden habe, möchten Sie einige Daten vom Server holen und dann das Fragment darüber informieren, dass die Daten vorbereitet sind und das Fragment neu zeichnen, ist das korrekt? Laut der Dokumentation hier :

  

onCreate () -   Das System ruft dies beim Anlegen des Fragments auf. Innerhalb Ihrer Implementierung sollten Sie wesentliche Komponenten des Fragments initialisieren, die Sie beibehalten möchten, wenn das Fragment angehalten oder gestoppt und dann wieder fortgesetzt wird.

     

onCreateView ()   Das System ruft dies auf, wenn das Fragment seine Benutzeroberfläche zum ersten Mal zeichnen soll. Um eine Benutzeroberfläche für Ihr Fragment zu zeichnen, müssen Sie eine Ansicht von dieser Methode zurückgeben, die das Stammverzeichnis Ihres Fragments ist. Sie können null zurückgeben, wenn das Fragment keine Benutzeroberfläche bereitstellt.

Wenn Sie ein Fragment irgendwo anders in Ihrer Anwendung erstellen, wird onCreate() method aufgerufen. Wenn das Fragment zum ersten Mal gezeichnet werden soll, wird onCreateView () aufgerufen und diese Methode gibt eine erstellte View zurück. In Ihrem Fall könnten Sie wahrscheinlich mit etwas gehen wie:

  1. Deklarieren Sie eine Instanzvariable (Container) für diese Daten und den Adapter (falls Sie eine verwenden).
  2. In onCreate , initialisiere alle diese Daten (leerer Container), initialisiere den Adapter und führe dann AsyncTask .
  3. aus
  4. In onCreateView , bereite die Ansicht so vor, dass sie zurückgibt - Adapter usw. Also, sobald AsyncTask fertig ist, ruft sie in onPostExecute your_adapter.notifyDataSetChanged() auf. Dadurch wird das Fragment neu gezeichnet, da der Adapter darüber informiert wird, dass sich Daten geändert haben (vom Server abgerufen).
tjurczyk 28.04.2014 06:22
quelle
0

Hängt davon ab, wann Sie die Daten abrufen möchten. Willst du es jedes Mal, wenn die App in den Vordergrund kommt? Verwende onResume () Willst du es nur, wenn die App zum ersten Mal startet? Verwenden Sie onViewCreated (), das nach onCreateView aufgerufen wird, fertig ist.

    
Velu 22.11.2016 06:26
quelle