Scarica la coda in Android

Qual è il modo migliore per implementare una coda di download in Android?

Sospetto che ci potrebbero essere delle classi di piattaforma che potrebbero fare la maggior parte del lavoro.

  • In playstore possiamo avere due applicazioni con lo stesso nome con pacchetto diverso - Android
  • Android ListView con la casella di controllo: deseleziona automaticamente
  • Navigazione GPS per webservice android
  • Una volta per tutti, come salvare correttamente lo stato di istanza di frammenti nello stack di return?
  • Valori di sensori di orientamento incoerenti su Android per azimuth / yaw and roll
  • Mostra .gif con android.graphics.Movie
  • Android ContentProvider legge e scrive autorizzazioni
  • API Google Maps API V2: Apri window Informazioni personalizzate sul lato destro di Marker
  • Chiusa non fu mai chiamata esplicitamente
  • Android come utilizzare l'adattatore per listView senza estendere la listAttività
  • Android non può get EditText getText () .toString () in un dialogo
  • Errore: esecuzione non rioutput per task ': app: transformResourcesWithMergeJavaResForDebug'
  • 4 Solutions collect form web for “Scarica la coda in Android”

    Qual è il modo migliore per implementare una coda di download in Android?

    Utilizza un IntentService . Fornisce la coda e il thread di background per voi, quindi tutto quello che devi fare è mettere la tua logica di download in onHandleIntent() . Vedere qui per un progetto di esempio che dimostra questo.

    Vorrei suggerire di guardare il pacchetto java.util.concurrent e più specificamente leggere su Executors

    È ansible creare un ExecutorService che eseguirebbe solo un numero 'n' di oggetti Runnable alla volta e coda automaticamente il resto delle attività. Una volta che uno dei thread in esecuzione finisce l'esecuzione, raccoglie l'object Runnable successivo in coda per l'esecuzione.

    Utilizzando un IntentService renderà piuttosto difficile sostenere la cancellazione. È solo qualcosa che devi sapere. Se è ansible, è livello API 9, sarai meglio utilizzare http://developer.android.com/reference/android/app/DownloadManager.html

    Dall'API 11 in su, un buon approccio è quello di utilizzare un FixedThreadPool con le attività di async. Fa una volta:

     ExecutorService threadPoolExecutor = Executors.newFixedThreadPool(3); 

    Dove 3 è il numero di download che si desidera eseguire contemporaneamente. Sarà queueu l'attività se ci sono già 3 download in esecuzione e gestiscono automaticamente l'attività in un secondo momento. Avvia le tue attività async con:

     yourAsynTask.executeOnExecutor(threadPoolExecutor, params); 

    Params è probabilmente l'URL con cui si desidera connettersi. Puoi leggerlo nella onPostExecute della tua asynctask e connettersi al server utilizzando un HttpURLConnection .

    Assicurarsi di distriggersre questa operazione:

     threadPoolExecutor.shutdown() 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.