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. Adaptador de matriz de Android Selección del ID incorrecto
  3. Android: ¿Cómo hacer un adaptador con IDs estables?
  4. Cómo configurar dagger + gradle
  5. Mantener el estado seleccionado botón de Android
  6. ¿De dónde viene esta tostada?
  7. No se puede encontrar el módulo con la ruta Gradle. Vinculación a la biblioteca -no especificado en su lugar
  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?

  • Enviar tareas a un grupo de subprocesos proporciona RejectedExecutionException
  • ¿Cómo puede manejar el descarte de un DialogFragment (compatibilidad lib) al completar un AsyncTask
  • Limitar (restringir) las instalaciones de la aplicación por cuenta (detectadas por dispositivos únicos) en Android
  • Android cómo crear la miniatura de tiempo de ejecución
  • Administrador de SDK de Android El par de SSL se ha cerrado incorrectamente
  • Android deep-linking. El intento no se restablece cuando se abre la aplicación desde el historial
  • 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.