Segunda AsyncTask no se ejecuta

Tengo 2 AsyncTask, uno que está creando conexiones del zócalo y otro que está transmitiendo objetos usando esos zócalos. Mi código es el siguiente:

try { connectat = true; transmitter = new SocketTransmitter(); transmitter.execute(); connector = new socketConnector(); connector.execute(owner); this.open(); } catch (IOException e) { 

Sin embargo, el AsyncTask llamado socketConnector nunca se crea o se ejecuta. Intenté cambiar el orden pero el transmisor no se creó ni ejecutó …

¿Qué está mal con eso?

Lo odiaba cuando HONEY COMB cambiaba la ejecución de AsyncTask múltiple de concurrente a secuencial. Así que cada vez que ejecuto un AsyncTask, hago algo como esto.

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); } else { task.execute(); } 

Pero el tamaño del grupo de subprocesos es 5, si agrega la sexta tarea, se agregará en una cola y no se ejecutará hasta que haya terminado uno de los cinco subprocesos.

Puesto que no sé qué nivel de la API usted está utilizando, sugeriría que usted vaya a través de la TAREA de ASYNC

Según la documentación:

Cuando se introdujo por primera vez, AsyncTasks se ejecutaron en serie en un solo hilo de fondo. Comenzando con DONUT, esto fue cambiado a un grupo de hilos permitiendo que múltiples tareas funcionaran en paralelo. Comenzando con HONEYCOMB, las tareas se ejecutan en un solo hilo para evitar errores comunes de aplicación causados ​​por la ejecución en paralelo.

Si realmente desea una ejecución paralela, puede invocar executeOnExecutor(java.util.concurrent.Executor, Object[]) with THREAD_POOL_EXECUTOR.

¿Ha intentado ejecutar el transmitter en el connector's onPostExecute() o viceversa?

Había escrito la clase para ejecutar AsyncTask simultáneamente.

Echale un vistazo:

Android-AsyncTask-Executor

Se necesita todo el trabajo para ejecutar AsyncTask concurrentemente en cualquier versión del sistema operativo Android, es mejor que usar:

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); } else { task.execute(); } 

Porque AsyncTask.THREAD_POOL_EXECUTOR disponible sólo en api> = 11

Con mi clase solo necesitas escribir:

 AsyncTaskExecutor.executeConcurrently(task, params); 

Y eso es todo. No hay errores en Android 2.x, 3.xy 4.x

Al igual que Robin Chander dijo, es probable que se ejecuta en serie y se puede utilizar executeOnExecutor … pero no está disponible hasta Android 3.0. Si desea una compatibilidad completa, debe descargar AsyncTask y utilizar Runnable . Si necesita informar los resultados en el hilo de la interfaz de usuario, no olvide utilizar un Handler .

  • ¿Cómo puedo manejar múltiples clientes conectados a un servidor mediante sockets?
  • Conexión HTTP de Android
  • Recibe UDP en Android Marshmallow
  • Enviar datos a través de wifi (no internet) cuando los datos móviles
  • Llegar a un dispositivo de red por IP y puerto mediante el emulador de Android
  • Comunicación de LocalSocket con el dominio de Unix en Android NDK
  • Pérdida severa de paquetes UDP en algunos dispositivos Android
  • Android - Socket del servidor
  • Android socket de programación ... ¿qué da?
  • Servicio de Android para sockets TCP
  • ¿Cómo puedo mantener mi aplicación en segundo plano?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.