Zur Zeit verwende ich AsyncTask, um die HTTP-Verbindung zu verarbeiten und Daten als JSON-Format abzurufen.
Das Laden aller Daten ist trivial, aber es verbraucht zu viel Zeit, also entschied ich mich, zu wechseln, um 10 Elemente gleichzeitig mit LIMIT OFFSET
(mysql) zu laden.
Als nächstes habe ich das Ereignis onScroll
für meine Listenansicht eingerichtet, um jedes Mal, wenn der Benutzer scrollt, ein neues AsyncTask
zu erstellen. Nach dem, was ich gelesen habe, ist AsyncTask
jedoch in einem Thread-Pool gespeichert, der auf 5 Threads beschränkt ist, also bin ich mir nicht sicher, ob das ein richtiger Ansatz ist. Ich bin ein Neuling für die Client / Server-App. Könnte mir jemand dazu einen Rat geben? Jeder verwandte Artikel, Dokumentation wäre sehr willkommen.
Hier sind ein paar nützliche Links dafür,
Android: Implementieren der Fortschrittsleiste und "Laden ..." für Endless List wie Android Market
Endlose Listview mit der aktuellen Async-Aufgabe
In einfachen Schritten
Wenn der Benutzer scrollt - erkennt das Ende der Liste
1) Zeigt einen Fortschritt an Benachrichtigung
2) Nach Update fragen 3) Update (asynchron) empfangen und Liste erweitern
Ein typischer Ansatz wäre z.B. um zunächst 25 zu laden und dann eine Fußzeile in der Liste zu haben, die z.B. die aktuelle Zählung und die Gesamtzählung und beim Drücken lädt eine weitere 25 und so weiter. Das wäre eine seitenweise Ladefunktion.
Wenn Sie dies tun, müssen Sie die aktuelle Position beibehalten und den Adapter benachrichtigen, dass sich die Liste geändert hat.
Wenn Sie ListView
verwenden, kann ich sicher davon ausgehen, dass Sie eine Art ListAdapter
verwenden müssen. Anstatt ein neues AsyncTask
im Ereignis onScroll
zu starten, sollten Sie nur ein einziges AsyncTask
beibehalten, um Daten vom Server abzurufen, diese Daten zum ListAdapter
-Datensatz hinzufügen und dann notifyDatasetChanged
für% co_de aufrufen %.
Die ListAdapter
und ListAdapter
kümmern sich um den Rest.
Tags und Links android android-asynctask http client-server