Possuo uma activity na qual estão 3 asynctasks, e elas são chamadas de acordo com o que é selecionado de uma listview pertencente à essa tela tbm. O problema é que quando eu estou enviando todos os itens dessa listview de uma vez o último ProgressDialog que eu possuo não está sumindo da tela, mesmo eu dando um .dismiss() no PostExecute da minha AsyncTask.
Segue os códigos das AsyncTasks:
private class CotacaoTask extends AsyncTask<Object, Object, String> {
private final Context ctx;
private final PedidoDados pedido;
public CotacaoTask(Context ctx, PedidoDados pedido) {
this.ctx = ctx;
this.pedido = pedido;
}
@Override
protected void onPreExecute() {
dialog = ProgressDialog.show(ctx, "Aguarde", "Transmitindo dados...");
}
@Override
protected String doInBackground(Object[] params) {
Gson gson = new Gson();
String pedidoJson = gson.toJson(pedido);
EnviarPedido pedidoEnviado = new EnviarPedido();
String resposta = pedidoEnviado.post(ctx, pedidoJson);
status = gson.fromJson(resposta, String.class);
return status;
}
@Override
protected void onPostExecute(String o) {
dialog.dismiss();
Pedidos_DadosDAO dao = new Pedidos_DadosDAO(ctx);
SimpleDateFormat dataFormat = new SimpleDateFormat("dd/MM/yyyy");
SimpleDateFormat horaFormat = new SimpleDateFormat("HH:mm:ss");
Date data = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(data);
Date data_atual = cal.getTime();
String data_completa = dataFormat.format(data_atual);
String hora_completa = horaFormat.format(data_atual);
pedido.setDataenvio(data_completa);
pedido.setHoraenvio(hora_completa);
if (o != null && !o.equals("0")){
pedido.setStatus("1");
pedido.setPedidosantana(Integer.parseInt(o));
Toast.makeText(ctx, "Orçamento " + o + " gerado no Sistema", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(ctx, "Ocorreu um erro! \n" + "Tente novamente ou entre em contato com o suporte", Toast.LENGTH_SHORT).show();
}
dao.altera(null, 0, null, null, null, null, pedido, false, pedido.getItens(), ctx);
carregaLista(tipos[spnEnvios.getSelectedItemPosition()]);
}
private class VisitaTask extends AsyncTask<Object, Object, String>{
private Context ctx;
private Visita visita;
public VisitaTask(Context ctx, Visita visita) {
this.ctx = ctx;
this.visita = visita;
}
@Override
protected void onPreExecute() {
dialog = ProgressDialog.show(ctx, "Aguarde", "Transmitindo dados...");
}
@Override
protected String doInBackground(Object... params) {
Gson gson = new Gson();
String pedidoJson = gson.toJson(visita);
EnviarVisita visitaEnviada = new EnviarVisita();
String resposta = visitaEnviada.post(ctx, pedidoJson);
status = gson.fromJson(resposta, String.class);
return status;
}
@Override
protected void onPostExecute(String o) {
dialog.dismiss();
VisitaDAO dao = new VisitaDAO(ctx);
if (o != null && !o.equals("0")){
visita.setStatus("2");
Toast.makeText(ctx, "Visita " + o + " gerada no Sistema", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(ctx, "Ocorreu um erro! \n" + "Tente novamente ou entre em contato com o suporte", Toast.LENGTH_SHORT).show();
}
dao.altera(visita, MainActivity.usuarioLogado.getId());
carregaLista(tipos[spnEnvios.getSelectedItemPosition()]);
}
}
private class FichaTask extends AsyncTask<Object, Object, String>{
private final Context ctx;
private final FichaCadastral ficha;
private String base64;
private File file;
private FichaTask(Context ctx, FichaCadastral ficha) {
this.ctx = ctx;
this.ficha = ficha;
}
@Override
protected void onPreExecute() {
dialog = ProgressDialog.show(ctx, "Aguarde", "Transmitindo dados...");
}
@Override
protected String doInBackground(Object... params) {
Gson gson = new Gson();
List<String> listaDocumentos = new ArrayList<>();
FileInputStream fs;
List<FichaCadastralDoc> documentos = ficha.getDocumentos();
byte[] bDoc;
for (FichaCadastralDoc doc : documentos) {
file = new File(doc.getCaminho());
bDoc = new byte[(int) file.length()];
try {
fs = new FileInputStream(file);
fs.read(bDoc);
fs.close();
base64 = Base64.encodeToString(bDoc, Base64.DEFAULT);
listaDocumentos.add(base64);
}catch (IOException e) {
e.printStackTrace();
}
}
String fichaJson = gson.toJson(ficha);
String fichaDocJson = gson.toJson(listaDocumentos);
EnviarFicha fichaEnviada = new EnviarFicha();
String resposta = fichaEnviada.post(ctx, fichaJson, fichaDocJson);
status = gson.fromJson(resposta, String.class);
return status;
}
@Override
protected void onPostExecute(String o) {
dialog.dismiss();
FichaCadastralDAO dao = new FichaCadastralDAO(ctx);
if (o != null && !o.equals("0")){
ficha.setStatus("1");
ficha.setFichaSantana(Integer.parseInt(o));
Toast.makeText(ctx, "Ficha Cadastral " + o + " gerada no Sistema", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(ctx, "Ocorreu um erro! \n" + "Tente novamente ou entre em contato com o suporte", Toast.LENGTH_SHORT).show();
}
dao.alteraAsyncTask(ficha, MainActivity.usuarioLogado.getId());
carregaLista(tipos[spnEnvios.getSelectedItemPosition()]);
}
}