У меня есть 6 различных типов List
результатов после завершения AsyncTask
.И List
результаты должны быть возвращены Activity
.Например: List<A>
, List<B>
, List<C>
, List<D>
, List<E>
и, наконец, List<F>
.
Это мой 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; }
}
Я позвоню AsyncTask следующим образом:
myAsync task = new myAsync();
task.execute(params);
List myList = task.getResultList(); // type is uncertain
Log.d("Tag", Integer.toString(myList.size());
Вы знаете, я должен указать тип возвращаемого значения (Результат) между тегами <>.Если я выберу определенный тип для List
, он не будет работать для других типов.
Действительно, я уже пытался вернуть List<Object>
и только List
типов.Но не сработало.
Я не хочу использовать 6 разных Async
.Можно ли решить это только с AsyncTask
?Я думаю, мне нужен анонимный список или что-то подобное, не уверен.Кто-нибудь может объяснить это?