procesos onprogressupdate oncancelled ejemplo cancel asynctask java android multithreading android-asynctask handler

java - oncancelled - onprogressupdate



Enhebrado en Android para procesar procesos de larga ejecuciĆ³n (1)

¿Por qué creas un hilo nuevo solo para esperar 2 segundos para llamar a AsyncTask? Le sugiero que elimine ese hilo, normalmente llame a AsyncTask y dentro de él coloque Thread.sleep (...).

Algo como:

protected void onPreExecute(String f){ Thread.sleep(2000); //example of setting up something f = "whatever"; }

PD: para ejecutar un hilo, debes llamar a thread.start. ;)

Ok, aquí está mi problema. Quiero aprender AsyncTask, Threading y Handler para procesar tareas de larga ejecución. Utilicé Android Cook Book y New Boston Android tutorial, pero no puedo hacerlo funcionar.

Necesito cambiar el mensaje de la barra de progreso. Esto no es para proyecto, sino para aprender a enhebrar. Enhebrar es realmente difícil para mí. Entonces, si tienes algún tutorial o guía para entender el enhebrado, por favor avísame.

Mientras tanto, probé la clase Handler, pero no funcionó. Así que probé AsyncTask. Pero tampoco funciona.

Aquí está mi código.

package com.example.androidpopup; import android.app.Activity; import android.app.ProgressDialog; import android.os.AsyncTask; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class MainActivity extends Activity { Button click_btn; ProgressDialog dialog; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); click_btn = (Button) findViewById(R.id.button1); click_btn.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { dialog = ProgressDialog.show(MainActivity.this, "", "Recording...", true); dialog.setCancelable(true); Thread thread = new Thread(){ public void run(){ try{ sleep(2000); new UpdateUI().execute("testing"); }catch(InterruptedException e){ e.printStackTrace(); } } }; } }); } public class UpdateUI extends AsyncTask<String, Integer, String>{ @Override protected String doInBackground(String... params) { // TODO Auto-generated method stub return "Searching"; } protected void onPreExecute(String f){ //example of setting up something f = "whatever"; } protected void onProgressUpdate(Integer...progress){ } protected void onPostExecute(String result){ dialog.setMessage(result); } } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } }

Si alguien puede explicar qué pasa con mi enfoque, sería realmente útil.

¡Gracias!