Duvida Medidor de envio

0 respostas
S

Galera estou com uma duvida em relação a criar uma barra de medida que demonstre o progresso de um envio de arquivo via internet.

Eu trabalho com 2 formas de envio de arquivo pela internet uma é via dispositivo movel que funciona da seguinte forma.

SoapObject client = new SoapObject("http://Serv/", "getNotas");
        client.addProperty("Codigo", codigo);
        client.addProperty("Cliente", Cliente);
        client.addProperty("cpf", cpf);
        HttpTransport ht = new HttpTransport(address, "getNotas");
        try {
            resp = ht.call(client).toString();
            int tam = resp.length();
            if (tam < 50) {
                tam = 50;
            }
            pai.getGDownload().setMaxValue(tam);
            for (int pos = 0; pos <= tam; pos++) {
                pai.getGDownload().setValue(pos);
            }
           }

A linha 7 é a responsavel por fazer a conexão é nela que o objeto client é enviado e recebe pela string resp a resposta, se vcs perceberem só depois que eu recebo a resposta que começo a fazer um contador que mostra o andamento da transação, ou seja vamos supor que volte uma mensagem de 2mb em texto, a aplicação ficaria um bom tempo recebendo esta resposta e soh depois começaria carregar a barra de medida.
Minha duvida é qual seria a forma correta para que eu possa em tempo real pegar a medição do que esta chegando assim poderei ir incrementando a barra de medida da forma correta.

Outro exemplo agora é enviando um email com um arquivo anexo.

Session sessao = obterSessao();
        Message mensagem = criarMensagem(sessao, assunto, destinatario);
        adicionarConteudoEAnexo(mensagem, conteudo, destinatario, arquivo);
        mensagem.saveChanges();
        Transport transport = null;
        try {
            transport = sessao.getTransport("smtp");
            transport.send(mensagem);
        } finally {
            transport.close();
        }

aqui funcionaria da mesma forma, estou enviando uma mensagem por email, vamos supor que a mensagem total com o arquivo anexo teria uns 4mb, e que para enviar esta mensagem minha conexão levaria 2 minutos, a linha8 é a responsavel por enviar a mensagem, ou seja a aplicação vai ficar parada na linha 8 durante 2 minutos e se eu fosse incrementar uma barra soh poderia incrementa-la depois que o transport terminar, gostaria de saber como posso em tempo real ir incrementando a barra a medida que o transport vai enviando?

Resumindo da forma que eu estou fazendo o medidor soh funciona depois de eu ter recebido ou enviado a resposta, e não em tempo real enquanto a ação está acontecendo, alguem pode me ajudar?

Obrigado.

Criado 5 de janeiro de 2009
Respostas 0
Participantes 1