|
Página 1 de 1
|
[ 1 Mensagem ] |
|
[Mini Tuto] AsyncTask e ProgressDialog - Ex04
| Autor |
Mensagem |
|
A H Gusukuma
Dalvik Virtual Machine
Data de registro: 17 Jul 2011, 10:55 Mensagens: 1989 Localização: São Paulo
|
 [Mini Tuto] AsyncTask e ProgressDialog - Ex04
Neste post vamos usar a AsyncTask para fazer o mesmo trabalho do Mini Tuto viewtopic.php?f=7&t=17462 Neste teste usamos todos os quatro métodos de uma AsyncTask: 1. No onPreExecute, atualizamos o ProgressDialog 2. No doInBackground, é onde fazemos todo o serviço. E como estamos em outra Thread, nos comunicamos com o ProgressDialog via o método publishProgress(total) enviando o contador para o método onProgressUpdate. 3. No onProgressUpdate, atualizamos o ProgressDialog. 4. No onPostExecute, fechamos o ProgressDialog e enviamos uma breve mensagem via toast. Seguem os códigos! package br. com. agorandroid. testeasynctask02; import android. app. Activity; import android. os. AsyncTask; import android. os. Bundle; import android. app. ProgressDialog; import android. view. View; import android. view. View. OnClickListener; import android. widget. Button; import android. widget. Toast; /** * @author A H Gusukuma * agorandroid.blogspot.com */public class TesteAsyncTask02Activity extends Activity { Button button; ProgressAsyncTask mAsyncTask; ProgressDialog progressDialog; /** Called when the activity is first created. */ @Override public void onCreate (Bundle savedInstanceState ) { super. onCreate(savedInstanceState ); setContentView (R. layout. main); button = (Button) findViewById (R. id. iniciarAsyncTask); button. setOnClickListener(new OnClickListener () { public void onClick (View v ) { ativaAsyncTask (); } }); } private void ativaAsyncTask () { progressDialog = new ProgressDialog (TesteAsyncTask02Activity. this); progressDialog. setProgressStyle(ProgressDialog. STYLE_HORIZONTAL); progressDialog. setMessage("Running..."); progressDialog. setCancelable(false); progressDialog. show(); mAsyncTask = new ProgressAsyncTask (); mAsyncTask. execute(); } private class ProgressAsyncTask extends AsyncTask<Void, Integer, Integer> { final static int STATE_DONE = 0; final static int STATE_RUNNING = 1; int mState; int total; protected void onPreExecute () { progressDialog. setProgress(0); } protected Integer doInBackground (Void... progress) { mState = STATE_RUNNING; total = 0; while (mState == STATE_RUNNING ) { total++; publishProgress (total ); if (total>= 100) { mState = STATE_DONE; } try { Thread. sleep(100); } catch (InterruptedException e ) { } } return total; } protected void onProgressUpdate (Integer... progress) { progressDialog. setProgress(progress [0]); } protected void onPostExecute (Integer result ) { progressDialog. dismiss(); Toast. makeText(TesteAsyncTask02Activity. this, "Fim da AsyncTask", Toast. LENGTH_SHORT). show(); } }} <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <Button android:text="Iniciar AsyncTask" android:id="@+id/iniciarAsyncTask" android:layout_width="fill_parent" android:layout_height="wrap_content"> </Button> </LinearLayout>
Bons códigos!
_________________Abraços ___________ Novo App: CalcMat - Calculadora de materiais para concreto Blog: Agorandroid - sobre programação Android Twitter: @Agorandroid ___________ Campanha: Facilite sua vida e a dos outros usuários Netiqueta:Procure responder as sugestões. Quando encontrar a solução, coloque [Resolvido] no primeiro post o mais rápido possível. Lembre-se de agradecer às pessoas que ajudaram e poste a solução do problema.
|
| 10 Fev 2012, 21:36 |
|
|
|
Página 1 de 1
|
[ 1 Mensagem ] |
|
Quem está online |
Usuários vendo este fórum: adolfo, akaytatsu, albinoneto, Alexandre Castro, alexandrefett, alexsander.miranda, Alexsandro Tirloni, Anakin Skywalker, ANDRE FELIX DE ASSIS, Andrey, Androidthebest, antoniodourado, Aparec, ARAKINIDIO, austonrd, betofigu, BOMBER27, boydivalor, brenda, brenno, caio, Carla Luz, carlosavasconcelos, Celso Jr., cesao, cleberkct, Clone Trooper, cosmotheoro, craudiao, culumin, David, DAVINCE, dbuarque, deborazb, developermaster, Diego, diegorrborges, dikiloco, dreyer, du_sr, eduardo.ali, fabielp, fabric01, felipedsilva, Flavio, Flavio Alves, fredjpa, Gabriel, garretereis, geeks, genildof, geovanebg, germanno, Gooooogle, gphonemania, GuilhermeZampieri, HanNiBaLSeTDf, henrikesilva1, henrique.cardoso, Heritrix, Igor_M, infonlinebr, italoraony, jackdaniel, jairo, jairom, Jango Fett, jhhm_2008, jhou, juliaojunior, jwv, jzaires, Katia, Ki-Adi-Mundi, kleberperea, Kureiton, lazarodm, leandroviana, leofernandesmo, leonardodamata, lhdiassilva, lillian.brandao, lucasB, luciano.sml, luiz.lago, Mace Windu, malucouto, marcelosv, Marco Magoo, Marlosm, martins, mateusff, Matheus562, maximilianjx, MBetioli, memnoch, mrangel, msmdark, Nice, nino, nsansilva, On_7, otpor, Paulo, paulovaz, pbcjunior, pemam.com.br, pingumanbr, Rafael, Ranieri, raninhofernandes, rayberg, rbenatti, regeriob2br, regis.ror, Renan, rfrafa, ricardo_listadelphi, ricardoogliari, ricardzanella, rlecheta, rmendes, roberto caceres, rodrigoinnova, rogeriokta, rotilho, SEO Crawler, SERGIO RODRIGUES, sidnei.gs, siker C3PO, tchou, Telekom [Bot], Teodoro, tiagocordeiro, tricx16, valaszek, Vinicius, vps_rj, wil, woyzeck, Zam Wesell e 5 visitantes |
|
Você não pode criar novos tópicos neste fórum Você não pode responder tópicos neste fórum Você não pode editar suas mensagens neste fórum Você não pode excluir suas mensagens neste fórum Você não pode enviar anexos neste fórum
|
|