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.