Vi que o instrutor Alex publicou um artigo ensinando como usar as Coroutines no lugar da Asynctask, porém eu como sou usuário do Java, gostaria de saber como posso usar o java.util.concurrent para desempenhar o mesmo papel da asynctask, inclusive, enviando respostas para a thread principal, como no exemplo abaixo:
public class JogadorJaExisteTask extends AsyncTask<Void, Void, Boolean> {
private final JogadorDao jogadorDao;
private final Fut fut;
private final String textNome;
private final Jogador jogador;
private final JogadorJaExisteListener listener;
public JogadorJaExisteTask(JogadorDao jogadorDao,
Fut fut,
String textNome,
Jogador jogador,
JogadorJaExisteListener listener) {
this.jogadorDao = jogadorDao;
this.fut = fut;
this.textNome = textNome;
this.jogador = jogador;
this.listener = listener;
}
@Override
protected Boolean doInBackground(Void... voids) {
for (Jogador j: jogadorDao.getJogadoresFut((int) fut.getFutId())) {
if (j.getNome().equals(textNome) && !j.getNome().equals(jogador.getNome())) {
return true;
}
}
return false;
}
@Override
protected void onPostExecute(Boolean jogadorJaExiste) {
super.onPostExecute(jogadorJaExiste);
listener.aposVerificar(jogadorJaExiste);
}
public interface JogadorJaExisteListener {
void aposVerificar(Boolean jogadorJaExiste);
}
}