5

Quello che sto cercando è trovare un modo per gestire un numero di thread all'interno di Asyntask.Come gestire il numero di thread all'interno di Sync Task

Ho bisogno di sincronizzare il mio database locale con gli aggiornamenti del server. Potrebbe trattarsi di dati di grandi dimensioni che possono essere recuperati utilizzando il paging.

Qualcuno può dirmi quale sia il modo preferito per gestire la generazione di thread in loop all'interno dell'asyntask in modo che possa visualizzare la finestra di dialogo di avanzamento fino a quando tutto il thread è stato completato.

Sono poco preoccupato per l'oggetto database locale & la sua sincronizzazione durante l'esecuzione di thread diversi per scaricare i dati dal server & salvare/aggiornare nel database locale.

Nota: non posso scaricare tutti i dati dal server in una singola chiamata al server.

Grazie in anticipo.

risposta

2

Se è un'operazione a esecuzione prolungata, utilizzare IntentService anziché AsyncTask. IntentService è indipendente dall'interfaccia utente, quindi puoi eseguirlo in background. Per aggiornare l'interfaccia utente è possibile inviare l'intento di trasmissione. Uso IntentService per la sincronizzazione DB. Ricevo i dati dal server, mentre analizzo creo aggiornamenti batch e quindi aggiorno il DB locale con un aggiornamento batch.

+0

Ma come posso ridurre il tempo di chiamata server iterativa. come posso eseguire più chiamate contemporaneamente. –

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 
Problemi correlati