Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Estou com dúvida no curso de Android : Integração com o servidor e Mapas, no exercício do capítulo Fazendo o envio dos dados de forma assíncrona.

Dúvida: como tratar o cancelamento da ProgressDialog pelo usuário?


package br.com.gamecursos.web;

import java.util.List;

import br.com.gamecursos.dao.AlunoDAO;
import br.com.gamecursos.modelo.Aluno;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.widget.Toast;

public class EnviaAlunos extends AsyncTask<Object, Object, String> {

    private final String endereco = "http://www.caelum.com.br/mobile";
    private MeuSQLiteHelper bd;
    private Context context;
    private ProgressDialog progress;

    public EnviaAlunos(Context context) {
        this.context = context;
    }

    @Override
    protected void onPreExecute() {
        progress = ProgressDialog.show(
                context, "Aguarde...", "Enviando dados...", true, true);
    }

    @Override
    protected String doInBackground(Object... params) {
        AlunoDAO dao = new AlunoDAO(context);
        List<Aluno> alunos = dao.getLista();

        String jsonAluno = new AlunoConverter().toJSON(alunos);

        String resposta = new WebClient(endereco).post(jsonAluno);

        return resposta;
    }

    @Override
    protected void onPostExecute(String result) {
        progress.dismiss();
        Toast.makeText(context, result, Toast.LENGTH_LONG).show();
    }

}
3 respostas

quando vc cria o progress dialog... ProgressDialog.show.... o ultimo parametro que é um booleano deixa configura se o usuario vai ou nao poder cancelar.

Isso eu entendi. Mas suponha que eu olhe na documentação como "ouvir" essa ação do usuário, como eu cancelo o envio dos dados?

solução!

Olá Éderson,

Não cheguei a implementar um exemplo, mas pelo que estou vendo aqui na documentação a classe ProgressDialog possui um método que pode ser usado para controlar o fechamento do dialog: onClose()

Creio que para poder fazer este tipo de processamento você irá precisar criar o seu próprio ProgressDialog e sobrescrever este método. Segue o link da documentação da classe: http://developer.android.com/reference/android/app/ProgressDialog.html

Espero ter ajudado...

[]'s