studio - oncancelled asynctask android
¿Puedo pasar diferentes tipos de parámetros a AsyncTask en Android? (2)
Quiero implementar una clase genérica, guardar el hilo que toma el RessourceId de un ImageView y la URL (http) donde se almacena el archivo de imagen deseado. Descargará la imagen y rellenará el src de ImageView en UiThread.
Pensé que AsyncTask sería lo mejor para mí. Sin embargo, noté que solo puedo pasar un tipo de parámetros al método doInBackground()
. Como una Matriz de Urls. ¿Es eso cierto? ¿Qué me recomendarías?
Puedes pasar los params como objetos
new MyTask().execute(url, str, context);
public class MyTask extends AsyncTask<Object, Void, Void> {
@Override
protected Void doInBackground(Object... params) {
Url url = (Url) params[0];
String str = (String) params[1];
Context ctx = (Context) params[2];
return null;
}
}
Puede agregar métodos setter a su implementación AsyncTask
, o incluso definir su propio constructor para pasar parámetros adicionales.
Opcionalmente, si su implementación AsyncTask
es una clase interna de una actividad, puede acceder a todas las variables de instancia de su actividad. Prefiero la opción anterior, ya que indica claramente qué datos requiere la tarea.