¿Por qué no AsyncTasks siempre funcionan dentro de un onClickListener?
He notado esto en los últimos meses. Si establezco un clickListener en un botón para ejecutar un AsyncTask, no siempre se ejecuta. Resuelvo el problema enrollando la línea de código que ejecuta el AsyncTask en un método.
Aquí está el código que no funciona todo el tiempo:
- Establecer OnClick Listener en el botón dentro de la vista de lista en android
- Cómo implementar OnTouch Listener en XML
- Firebase UI RecyclerView onClick
- OnClickListener para la pantalla ENTERA
- OnClick listener a una imagen ListView - Android
button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { new CustomAsyncTask().execute(); } });
Aquí está mi solución:
button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { executeAsyncTask(); } }); public void executeAsyncTask(){ new CustomAsyncTask().execute(); }
No he notado el patrón de cuándo lo hace y no se rompe, pero me pregunto si alguien más ha notado esto?
Además, si alguien tiene una explicación de por qué esto sucede que sería genial también.
Gracias por adelantado.
EDITAR
Aquí está el CustomAsyncTask (sé que no se llama todo el tiempo porque no se imprime nada)
private class CustomAsyncTask extends AsyncTask<Void, Void, Void>{ @Override protected Void doInBackground(Void... params) { Log.i("CustomAsyncTask", "doInBackground"); return null; } }
- ¿Cómo implementar el evento de clic en el icono de la barra de herramientas?
- ¿Cómo puedo tener EditText con Clickable Spannables y todavía seleccionable por longClick?
- Parámetro de vista de Android para el método OnClickListener
- Obtener coordenadas haciendo clic en el mapa (openstreetmaps)
- Evitar que ProgressDialog sea rechazado por onClick
- Usando un bucle para establecer los botones enclicklistener
- Taps rápidos (clics) en RecyclerView abre varios fragmentos
- Android - método setOnClickListener cómo funciona?
- Problemas de AsyncTasks múltiples en Android Spinner
- TextView un-removed ChangeWatchers causa pérdida de memoria