5

Was ich suche ist eine Möglichkeit zu finden, eine Anzahl von Threads innerhalb des Asyntask zu verwalten.Wie innen Sync-Task Anzahl der Threads verwalten

Ich brauche meine lokale Datenbank mit Server-Updates zu synchronisieren. Dies können große Daten sein, die mithilfe von Paging abgerufen werden können.

Kann jemand mir sagen, was bevorzugte Weg ist, zu erzeugen Fäden in Schleife im Inneren des asyntask zu verwalten, so dass es Fortschritte Dialog, bis alle der Thread abgeschlossen angezeigt werden kann.

Ich bin etwas besorgt über das lokale Datenbankobjekt & seine Synchronisation während der Ausführung von verschiedenen Threads, um Daten vom Server & Speichern/Aktualisieren in die lokale Datenbank herunterladen.

Hinweis: Ich kann nicht alle Daten vom Server in einem einzigen Server herunterladen nennen.

Vielen Dank im Voraus.

Antwort

2

Wenn es lange laufenden Betrieb ist, sollten Sie IntentService statt AsyncTask verwenden. IntentService ist UI-unabhängig, so dass Sie es im Hintergrund ausführen können. Um die Benutzeroberfläche zu aktualisieren, können Sie Broadcast Intent senden. Ich benutze IntentService für DB Sync. Ich bekomme Daten vom Server, beim Parsen erstelle ich Batch-Updates und aktualisiere dann die lokale Datenbank mit einem Batch-Update.

+0

Aber wie kann ich die Zeit des iterativen Serveraufrufs reduzieren. Wie kann ich mehrere Anrufe gleichzeitig durchführen? –

0
Try this ,  

You can set a static variable that is initialized to zero, and it is incremented 
by each thread .check this variable in asynctask,if it is equal to the no: of threads 
in your class finish it.Simple But works 
Verwandte Themen