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


Android: AsyncTask OR normal Java threads con ExecutorService

Mi aplicación utiliza un Service para hacer algunas cosas de fondo. Estoy utilizando subprocesos adicionales en el servicio para hacer algún cálculo. Para este propósito, creo dos hilos cada 5 a 10 segundos, que están ejecutando de 5 a 10 segundos. Pero no sé qué modelo de hilo debería usar:

  1. AsyncTask:

  2. Multiline TextView en Android?
  3. ¿Cómo implementar la videoconferencia de conferencia telefónica de 3 vías con WebRTC Native Code para Android?
  4. No puede encontrar símbolo en Android Studio sin reconstruir proyecto
  5. Cómo utilizar viewGroup en android
  6. Cómo obtener el onWindowFocusChanged en Fragment?
  7. Conectar un dispositivo Android a un servicio web en un host local
  8. Pros:

    • fácil de usar
    • Específico de Android
    • Interfaz de usuario fácil

    Contras:

    • Dado que tengo que utilizar el nivel de la API 10, no hay ningún ExecutorService con grupo de hilos fijo para ejecutar las AsyncTasks
  9. Normal Java Hilos:

    Pros:

    • ExecutorService con conjunto de hilos fijo

    Contras:

    • No es tan fácil de manejar, por ejemplo interacción UI

¿Qué modelo es mejor usar? Especialmente en interés del rendimiento. ¿Hay una sobrecarga pesada cuando estoy usando AsyncTasks, y es el ExecutorService más rápido en la reutilización de los hilos de lo que Android en la creación de nuevas AsyncTasks?

  • Añadir y quitar dinámicamente la vista a viewpager
  • Uso de Android RecognizerIntent con un auricular bluetooth
  • Cambiar el color sólido de la forma en el tiempo de ejecución dentro del xml Drawable usado como fondo
  • Localización de Android
  • Cómo adjuntar fuente a android.jar
  • Cómo cambiar el color del botón Volver de la barra Google en Android?
  • 2 Solutions collect form web for “Android: AsyncTask OR normal Java threads con ExecutorService”

    Si observa la implementación de AsyncTask , verá que utiliza su propio grupo de subprocesos utilizando "subprocesos Java normales".

    ¿Hay una sobrecarga pesada cuando estoy usando AsyncTasks, y es el ExecutorService más rápido en la reutilización de los hilos que Android en la creación de nuevas AsyncTasks?

    No debe haber ninguna diferencia sustancial entre los dos.

    Estoy usando Needle; Una biblioteca multithreading de código abierto, simple y potente para Android. Con él se puede decir cosas como:

     Needle.onMainThread().execute(new Runnable() { @Override public void run() { // eg change one of the views } }); 

    o

     Needle.onBackgroundThread().execute(new UiRelatedTask<Integer>() { @Override protected Integer doWork() { int result = 1+2; return result; } @Override protected void thenDoUiRelatedWork(Integer result) { mSomeTextView.setText("result: " + result); } }); 

    Pros

    • API muy simple
    • Tamaño del grupo de hilos fijo
    • Tamaño de grupo de hilos personalizable
    • Soporta la interacción de la interfaz de usuario ("haz el trabajo y luego usa el resultado en el subproceso de la interfaz de usuario")
    • Android 1.5+
    • Se comporta de la misma forma en todas las versiones de la plataforma

    Contras

    • Dependencia adicional de la biblioteca

    Compruébelo en GitHub: https://github.com/ZsoltSafrany/needle

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