Я собираюсь закончить несколькими классами, каждый из которых выполняет разные AsyncTask
и один класс ' manager ', который будет отвечать за запуск этих задач и обработку результата.
Есть ли проблемы с использованием интерфейса для обеспечения обратного вызова одного и того же объекта из нескольких экземпляров AsyncTask
таким образом?
Типичный пример класса задачи:
import android.os.AsyncTask;
public class SomeBackgroundAction extends AsyncTask<SomeObject, Void, Boolean> {
public interface SomeBackgroundActionDelegate {
void result(Boolean result);
}
private SomeBackgroundActionDelegate delegate;
public SomeBackgroundAction(SomeBackgroundActionDelegate delegate) {
this.delegate = delegate;
}
@Override
protected Boolean doInBackground(SomeObject... theseThings) {
// some more code
return theseThings[0].doThingThatReturnsBoolean();
}
@Override
protected void onPostExecute(Boolean aBoolean) {
super.onPostExecute(aBoolean);
if (delegate != null) {
delegate.result(aBoolean);
}
}
}
и запуск задач как таковой:
new SomeBackgroundAction((r) -> {
if (r) {
// do good
} else {
// do bad :(
}
}).execute(someObject);
Это хорошая практика или есть лучший образец, на который я должен обратить внимание, чтобы сделать это?