Tengo 6 tipos diferentes de List
resultados después de completar AsyncTask
. Y los resultados de List
deben devolverse a Activity
. Por ejemplo: List<A>
, List<B>
, List<C>
, List<D>
, List<E>
y finalmente List<F>
.Cómo devolver una lista anónima o ArrayList en AsyncTask en Android
Ésta es mi AsyncTask
:
public class myAsync extends AsyncTask<String, String, List> {
private List resultList;
@Override
protected List doInBackground(String... params) {
//params[0] is url
//params[1] is type
callAPI api = new callAPI(params[0], params[1]);
// According to type api decides type of List and generates
return api.getJSON(); // returns a List which already parse JSON
}
@Override
protected void onPostExecute(List result) {
// Result is here now, may be 6 different List type.
this.resultList = result
}
// returns result
public List getResultList() { return this.resultList; }
}
que llamaré AsyncTask así:
myAsync task = new myAsync();
task.execute(params);
List myList = task.getResultList(); // type is uncertain
Log.d("Tag", Integer.toString(myList.size());
Sabes, debo señalar el tipo de retorno (Resultado) entre <> etiquetas. Si elijo un tipo específico para List
, no funciona para otros tipos.
De hecho, ya he intentado devolver List<Object>
y solo List
tipos. Pero no funcionó.
No quiero usar 6 diferentes Async
. ¿Es posible resolver esto con un solo AsyncTask
? Supongo que necesito una lista anónima o algo similar, no estoy seguro. ¿Alguien puede explicar esto?
Puede pasar por alto <>, que no será un error, simplemente le avisa. – kosa
Quiere decir que debería usar esta definición: 'AsyncTask'. Si es así, ¿cuáles serán los tipos de devolución? Ya devolví todos los tipos como una Lista normal, recibí un error de NullException. –
Publicar stacktrace aquí, sospecho que el NullPointer que está recibiendo podría ser de otro lado. – kosa