Upload
jamesvama1
View
214
Download
0
Embed Size (px)
Citation preview
7/23/2019 Barra de Progreso Con Un Asynctask
http://slidepdf.com/reader/full/barra-de-progreso-con-un-asynctask 1/4
BARRA DE PROGRESO CON UN
ASYNCTASK
22 octubre, 2011 · de Javier Hdez. · en Android. ·
Lo primero, crear el elemento ProgressBar !a sea desde el "ml o con c#digo Java$, en este caso
desde el "ml%
<ProgressBar
android:max="100"
android:id="@+id/progressbar1"
android:layout_widt="!ill_parent"
android:layout_eigt="wrap_ontent"
style="#android:attr/progressBar$tyle%ori&ontal"
android:'isibility="in'isible"/(
&sto no 'ace nada, solo mostrar en la pantalla una barra de progreso 'orizontal completada
android%ma"()100*$, para +ue 'aga su trabao tendr-amos +ue aadir un /'read Hilo de
eecuci#n$ para poder eecutar la tarea en segundo plano ! liberar los componentes de la . &n
Android e"iste el /'read al igual +ue en Java$ pero si lo utilizramos para esta tarea no
podr-amos crear otros obetos de la vista, para resolver este problema e"isten el As!nc/as3 ! el
4ervice, en este caso utilizaremos el As!nc/as3.
Bueno para ello creamos una clase p5blica dentro de nuestra Activit!$ +ue e"tienda de
As!nc/as3 e implementamos los m6todos a sobreescribir, algo as-%
publi lass asyn)as*ProgressBar extends syn)as*<,oid- .nteger- ,oid(
7/23/2019 Barra de Progreso Con Un Asynctask
http://slidepdf.com/reader/full/barra-de-progreso-con-un-asynctask 2/4
@'erride
proteted 'oid onPostxeute2,oid result3
progressBar4set,isibility2,iew4.5,.$.B637
)oast4ma*e)ext2getppliation8ontext23-
get$tring294string4tarea_!inali&ada3- )oast465)%_6534sow237
6og4i2log)ag- ")area reali&ada "37
;
@'erride
proteted 'oid onPrexeute23
progressBar4set,isibility2,iew4,.$.B637
;
@'erride
proteted 'oid onProgresspdate2.nteger444 'alues3
7/23/2019 Barra de Progreso Con Un Asynctask
http://slidepdf.com/reader/full/barra-de-progreso-con-un-asynctask 3/4
progressBar4setProgress2'alues0>37
;
@'erride
proteted ,oid do.nBa*ground2,oid444 arg03
progressBar4setProgress2?37
try
i!2mail4en'iar233
progressBar4setProgress210037
4!stem7loc3.sleep100037
;
; at 2xeption e3
6og4e2log)ag- "%ubieron
errores al reali&ar la tarea"- e37
progressBar4setProgress2037
; at 2)rowable e3
7/23/2019 Barra de Progreso Con Un Asynctask
http://slidepdf.com/reader/full/barra-de-progreso-con-un-asynctask 4/4
e4print$ta*)rae237
;
return null7;
;
&l m6todo onPre&"ecute se eectua antes de donBac3ground, por lo +ue en ese momento
'acemos visible nuestra barra de progreso cuando 'a!amos instanciado nuestro obeto
as!nc/as3ProgressBar. onPost&"ecute es todo lo contrario, lo utilizaremos para cuando termine la
tarea programada en donBac38round.
onProgressdate nos va a!udar a actualizar nuestra barra de progreso, tan solo tendremos +ue ir
aadi6ndolo en nuestro c#digo ! pasarle un entero como parmetro para indicarle el progreso. Lo
podemos aadir en la misma Activit! en la +ue estamos trabaando o en otras Activities como enclases Java de la siguiente 9orma%
progressBar.setProgressint$:
As- +uedar ms real nuestra barra de progreso, se ir actualizando a medida +ue se eecuta la
tarea programada.
;o olvidar +ue 'a! +ue 'acer el obeto progressBar como p5blico ! esttico para poder
manearlo en las otras Activities o clases Java para +ue el <& no muestre errores.
&l uso de 4!stem7loc3 es para +ue despu6s de completarse la barra como luego la 'ago
invisible$ se +uede mostrndose durante un segundo para +ue el usuario pueda verla, de lo
contrario ocurrir-a tan rpido +ue no podr-a apreciarse el progreso al 100=.