У меня есть класс активности, который дважды вызывает фоновый AsyncTask, например
BackgroundTask bt1 = new BackgroundTask(this, ApiHelper.GET);
bt.execute(url1);
BackgroundTask bt2 = new BackgroundTask(this, ApiHelper.POST, params);
bt.execute(url2);
, один используется для получения данных, а другой - для отправки данных на сервер.
Конструкторыэтот AsyncTask выглядит следующим образом
public BackgroundTask(Context context, String method) {
this.context = context;
this.method = method;
this.callback = (onBackgroundTaskListener<String>) context;
}
public BackgroundTask(Context context, String method, ArrayList<NameValuePair> params) {
this.context = context;
this.method = method;
this.callback = (onBackgroundTaskListener<String>) context;
this.params = params;
}
Теперь MainActivity.class реализован с помощью интерфейса onBackgroundTaskListener<String>
как
public interface onBackgroundTaskListener<T> {
void onTaskComplete(T result);
}
onPostExecute класса AsyncTask, String result
возвращается или передается обратновызывающий класс, показанный ниже.
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
callback.onTaskComplete(result);
}
Теперь у меня есть один метод (onTaskComplete) в MainActivity для решения двух ответов, поступающих от одной фоновой задачи.Я хотел бы использовать условие, чтобы выяснить, какое выполнение возвращает результат, подобный ...
@Override
public void onTaskComplete(String result) {
if (execution == 1) {
// Parse the GET result
} else if(execution == 2) {
// Parse the POST result
}
}
Я не хочу реализовывать множественный AsyncTask и хотел бы добиться этого, используя один AsyncTask и вызываяэтот AsyncTask несколько раз в рамках одного действия.Каким должен быть возможный способ реализовать это.