usando - peticiones asincronas android
¿Ejecuta AsyncTask el doInBackground de acuerdo con cada orden de parámetro o aleatoriamente? (3)
Primero, los parámetros no se pasan aleatoriamente. Esta respuesta te explicará más sobre los parámetros. También verifique la imagen de esta respuesta . Estoy agregando la misma imagen aquí para su comprensión.
Por ejemplo, hay un AsyncTask
of a String ... si hago una llamada como esta:
AsyncTask<String, Void, Void> someTask = new myTask(myActivity.this);
someTask.execute(string1 , string2 , string3);
¿Cuál es el orden interno de ejecución de doInBackground
dentro de esta tarea? ¿Trata primero a string1 y luego a string2 y así sucesivamente como se proporcionan cuando se llaman, o trata los parameters
aleatoriamente?
Puede ser en serie en un subproceso o paralelo, en realidad depende de la versión del sistema operativo Android que esté ejecutando. En la mayoría de los casos, sería serial en un hilo de fondo.
Esto es lo que dice el documento de google:
Executes the task with the specified parameters. The task returns itself (this) so that the caller can keep a reference to it.
Note: this function schedules the task on a queue for a single background thread or pool of threads depending on the platform version. When first introduced, AsyncTasks were executed serially on a single background thread. Starting with DONUT, this was changed to a pool of threads allowing multiple tasks to operate in parallel. Starting HONEYCOMB, tasks are back to being executed on a single thread to avoid common application errors caused by parallel execution. If you truly want parallel execution, you can use the executeOnExecutor(Executor, Params...) version of this method with THREAD_POOL_EXECUTOR; however, see commentary there for warnings on its use.
This method must be invoked on the UI thread.
Verifique que este enlace se ejecute (Params ... params) lo ayudará.
Espero eso ayude,
Gracias.
String...
es un " vararg ", que en este ejemplo convierte todos los parámetros individuales en una String[]
, donde las entradas de la matriz están en el orden en que pasaron al método.
Entonces usando su ejemplo, (String []) param[0]
== string1
, param[1]
== string2
, param[2]
== string3
y demás. Esto es para el pedido de entradas param
, en cuanto a cómo se usa cada entrada en param
, depende completamente de su código.