У меня 6 разных типов результатов List
после выполнения AsyncTask
. И результаты списка List
должны быть возвращены в действие Activity
. Например: Список
, Список
, Список
, Список
, Список
и, наконец, Список
.
Это моя 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
. Но не сработало.
Я не хочу использовать 6 разных Async
. Возможно ли решить эту проблему с помощью только AsyncTask
? Я думаю, мне нужен анонимный список или что-то подобное, я не уверен. Кто-нибудь может это объяснить?