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


Múltiples parámetros de entrada para el método execute () de AsyncTask

todo el mundo. He leído en el sitio de android la descripción del excute () de AsyncTask:

public final AsyncTask<Params, Progress, Result> execute (Params... params)

Pero dentro de mi proyecto, he leído el código de esta manera:

 private static final int JSON = 0; private static final int NAME = 1; @Override protected String doInBackground(String... strData) { FileOutputTask task = new FileOutputTask(context); task.execute(strData[JSON], strData[NAME]); } 

Alguien puede decirme por qué hay 2 parámetros de entrada para el método execute () ?

Puesto que de acuerdo con la especificación, debe haber sólo un parámetro de entrada.

¡Gracias por adelantado!

  • Android dos AsyncTasks ejecución en serie o en paralelo? - El segundo es helada pero el resultado es bueno
  • ¿Diferencia entre OnlyOnRanToCompletion y NotOnFaulted?
  • Android Contexto Referencia débil
  • ¿Cómo actualizar ListView al desplazarse mientras recupera datos del servidor en Android?
  • Esperando que ASyncTask termine o que la variable se establezca
  • ¿Está todavía utilizando AsyncTask para cargar elementos de listView en segundo plano?
  • Android: AsyncTask ProgressDialog no se abrirá en ActivityGroup
  • Android asynctask envío de devoluciones de llamada a ui
  • 2 Solutions collect form web for “Múltiples parámetros de entrada para el método execute () de AsyncTask”

    Lea Params... params como Params[] params . Puede enviar tantos params como desee.

    Aquí es cómo lo conseguí pasar parámetros múltiples. Podrías hacerlo como lo describió Boris, pero ¿qué pasaría si pasas por diferentes tipos?

    Primero, cree su AsyncTask como normal, pero dentro de él, cree un constructor:

      private class StartTask extends AsyncTask<Context, Void, Boolean> { private ProgressDialog progress; private String strAction=""; public StartTask(ProgressDialog progress, String Action) { this.progress = progress; this.strAction = Action; } } 

    Ahora, en tu evento o cualquier otra cosa, cuando quieras iniciar la acción llamas a tu AsyncTask y pasas tantos parámetros como quieras.

      ProgressDialog progress = new ProgressDialog(this); progress.setMessage("Loading..."); String strAction = "this_is_a_string"; new StartTask(progress, strAction).execute(this); 

    Puede ver que al llamar a "StartTask" y pasar los parámetros de constuctor ahora asignará las variables dentro de la clase StartTask.

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