Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


La mejor manera de ejecutar el método asincrónicamente en Android (compacto y correcto)

Digamos que tengo una actividad que muestra algún contenido en la pantalla. Necesito ejecutar algún método (asyncMethod) de forma asincrónica y cuando se hace, tengo que actualizar los datos en la pantalla. ¿Cuál es la manera más correcta y sencilla de hacer esto?

Actualmente la manera más simple que conozco es usar hilo:

new Thread(new Runnable() { public void run() { asyncMethod(); } }).start(); 

Estoy familiarizado con AsyncTask, pero es más complejo que usar el hilo y para cada método que necesito para ejecutar de forma asíncrona hay una necesidad de crear AsyncTask nuevo, mientras que esto es grandemente el tamaño del código aumenta.

Pensé en algún genérico AsincTask que obtiene el método como un parámetro y que lo ejecuta, pero en la medida en que sé que es imposible en Java para pasar métodos como parámetros.

En otras palabras, estoy buscando la forma más compacta (pero correcta) para ejecutar métodos asincrónicamente.

2 Solutions collect form web for “La mejor manera de ejecutar el método asincrónicamente en Android (compacto y correcto)”

Handler y Looper .

La mayoría de las veces, mantenga el Handler al Looper del hilo de UI y luego utilícelo para publicar Runnable . Por ejemplo:

 Handler h = new Handler(); //later to update UI h.post(new Runnable(//whatever); 

PS: Handler y Looper son impresionantes. Tanto que los he rehecho para Java.

Si utilizó el patrón de diseño de comandos y realizó un AsyncTask genérico que podría ejecutar los objetos de "comando", sólo necesitaría una clase para cada tarea y la AsyncTask genérica para ejecutarlas todas. Incluso podría ir tan lejos como para hacer un genérico "comando" que ejecutó un método a través de reflexiones o algún método de interfaz predefinida.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.