2012-02-24 22 views

risposta

20

I thread sono attività di elaborazione generiche che possono fare la maggior parte delle cose, ma una cosa che non possono fare è aggiornare l'interfaccia utente.

I gestori d'altra parte sono legati a thread che consentono di comunicare con il thread dell'interfaccia utente (aggiornare l'interfaccia utente).

Quindi, ad esempio, mostrare un brindisi o aggiornare una barra di avanzamento tramite un messaggio (Runnable) inviato a un gestore ma non è possibile se si avvia questo eseguibile come thread.

Con il gestore è possibile avere anche cose come MessageQueuing, pianificazione e ripetizione.

Devo ancora incontrare una situazione in cui avevo bisogno di un thread in Android.

Principalmente uso una combinazione di AsyncTask e Handler.

Gestori per i compiti summenzionati.

AsyncTasks per il download/recupero dei dati e sondaggi ecc

È possibile leggere l'articolo qui sviluppatore "Painless Threading" per ulteriori threading in Android.

Correzione: Ogni istanza del gestore è associata a un singolo thread e alla coda dei messaggi di quel thread. Non sono thread nel loro stesso nome. come descritto here.

+3

I gestori non sono thread – Selvin

+0

Vero, corretto – MahdeTo

2

Un thread definisce un processo in esecuzione. Come se avessi un thread principale (interfaccia utente) in Android. e tutti gli altri thread vengono eseguiti in background (in parallelo).

Handler è completamente diverso, è come iniziare l'operazione definita in un gestore ..

per cancellare la vostra confusione, ed eseguire la filettatura in Android è necessario leggere: http://android-developers.blogspot.com/2009/05/painless-threading.html

e vorrei suggerire AsyncTask invece di usare Thread in tutti i casi.

0

Perché usiamo i gestori con filo:

Quando si installa un'applicazione in Android allora creare un filo per l'applicazione denominata UI principale Filo, Tutte le attività svolte all'interno di quel filo, dal modello singolo thread Android non possiamo accedere agli elementi dell'interfaccia utente (bitmap, textview ecc.) direttamente per un altro thread definito all'interno di tale attività.

Quindi, se si desidera accedere agli elementi del thread dell'interfaccia utente principale da un altro thread, verranno utilizzati i gestori.

Problemi correlati