Segue a minha implementação da AsyncTask:
public class BuscaTelefonesAlunoTask extends AsyncTask <Void, Void, List<Telefone>> {
private final TelefoneDao telefoneDao;
private final Aluno aluno;
private final OnBuscaTelefonesListener listener;
public BuscaTelefonesAlunoTask(TelefoneDao telefoneDao, Aluno aluno, OnBuscaTelefonesListener listener) {
this.telefoneDao = telefoneDao;
this.aluno = aluno;
this.listener = listener;
}
@Override
protected List<Telefone> doInBackground(Void... voids) {
return telefoneDao.buscaTelefonesAluno(aluno.getId());
}
@Override
protected void onPostExecute(List<Telefone> telefones) {
super.onPostExecute(telefones);
listener.onBusca(telefones);
}
public interface OnBuscaTelefonesListener{
void onBusca(List<Telefone> telefones);
}
}
O trecho da activity com a chamada da task (implementação do listener vazia propositalmente, neste momento):
telefones = new BuscaTelefonesAlunoTask(telefoneDao, aluno, new BuscaTelefonesAlunoTask.OnBuscaTelefonesListener() {
@Override
public void onBusca(List<Telefone> telefones) {
}
}).execute();
Erro no build:
error: incompatible types: AsyncTask<Void,Void,List<Telefone>> cannot be converted to List<Telefone>
}).execute();