Após implementar a classe EnviaAlunosTask, quando aciono o botão Enviar notas, recebo a seguinte Exception:
FATAL EXCEPTION: AsyncTask #1
Process: br.com.alura.agenda, PID: 11787
java.lang.RuntimeException: An error occurred while executing doInBackground()
Seguido da possível causa:
Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
Segue minha classe EnviaAlunosTask:
public class EnviaAlunosTask extends AsyncTask<Void, Void, String>{
private Context context;
private ProgressDialog dialog;
public EnviaAlunosTask(Context context) {
this.context = context;
}
@Override
protected void onPreExecute() {
dialog = ProgressDialog.show(context, "Aguarde", "Enviando alunos...", true, true);
}
@Override
protected String doInBackground(Void... params) {
AlunoDAO dao = new AlunoDAO(context);
List<Aluno> alunos = dao.buscaAlunos();
dao.close();
AlunoConverter conversor = new AlunoConverter();
String json = conversor.converteParaJson(alunos);
WebClient client = new WebClient();
String resposta = client.post(json);
return resposta;
}
@Override
protected void onPostExecute(String resp) {
dialog.dismiss();
Toast.makeText(context, resp, Toast.LENGTH_LONG).show();
}
}
Várias fontes de pesquisas mostram que nesse caso deve implementar o Activity.runOnUiThread().
Mas levando em consideração o vídeo, não seria preciso. Alguém pode me ajudar?