IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Consulteu l'original a Procesos Android

Introducció

Quan un component d'una aplicació s'inicia i l'aplicació no té cap component actualment en execució, el sistema operatiu Android inicia un nou procés Linux que es dedica a l'aplicació. Aquest procés té un sol fil d'execució, anomenat el main thread. Per defecte, tots els components de la mateixa aplicació s'executen al mateix procés i fil d'execució, si el component d'una aplicació s'inicia i ja existeix el fil d'execució principal de l'aplicació ( perquè un altre component ja s'està executant), aleshores el nou component s'executa dins d'aquest fil d'execució principal.

Processos i Threads

Es pot controlar a quin procés pertant cada component d'una aplicació Android modificant el fitxer manifest.xml.

Els elements XML de cada tipus de component android del fitxer de manifest:

<activity>, <service>, <receiver>, <provider> ...

Cicles de vida dels processos

Procés en primer terme

És el procés actiu, el que esta utilitzant en aquest moment l'usuari. Un procés es considera d'aquesta categoria si es compleix alguna de les següents condicions:

  • Conté una activitat amb la que l'usuari està interaccionant (the Activity's onResume() method has been called).
  • Si el procés conté un Servei que està lligat a l'activitat amb la que l'usuari està interaccionant.
  • Si el procés conté un Servei que s'està executant en "foreground" ( el servei ha cridat el mètode startForeground()).
  • Si el procés conté un Servei que està executant un dels seus mètodes (callbacks) del cicle de vida (onCreate(), onStart(), o onDestroy()).
  • Si el procés conté un BroadcastReceiver que està executant el mètode: onReceive()

En general només uns pocs processos estan en aquest estat en un moment donat. Només es mata aquests processos com a últim recurs, és a dir que no hi ha prou memòria per a continuar.

Procés visible

Procés de tipus servei

Procés tipus segon terme

Procés buit

Treads

Quan s'inicia una aplicació, el sistema crea un fil d'execució o thread anomenat main o fil d'execució principal.

Aquest thread és molt importants perque s'encarrega de gestionar els esdeveniments relacionats amb l'interfície gràfica. Aquí s'interactua amb els components del Android UI toolkit(components dels paquets android.widget i android.view. Per aquesta raó ta,bé se conegut com a UI thread o fil d'execució de la interfície gràfica.

Worker Treads

El sistema no crea un fil d'execució diferent per a cada instància d'un component Android. Tots els components s'executen al mateix fil d'execució, el fil principal.

Async Task

AsyncTask us permet realitzar tasques de forma asíncrona a la vostra interfície d'usuari. Realitza les operacions que bloquejen el sistema en un worker thread independent del UI thread i aleshores publica els resultats al fil principal sense la necessitat de gestionar els threads o els handlers.

http://developer.android.com/intl/es/reference/android/os/AsyncTask.html

Enllaços Externs

http://developer.android.com/intl/es/reference/android/os/AsyncTask.html

Vegeu També

Processos Android