Qual a Vantagem de usar ProgressDialog?

60 views
Skip to first unread message

Vinny Valente

unread,
Sep 9, 2014, 9:49:26 AM9/9/14
to androidb...@googlegroups.com
Galera,

Estou criando um app que acessa um WS com uma AsyncTask. 
Uma AsyncTask é justamente para não segurar o app enquanto determinada task esta em execução e não prender o usuário. 
Ai que vem a duvida;
Coloquei o ProgressDialog e ela só sai da tela quando a AsyncTask termina. Não da pra voltar ou usar o app enquanto a AsyncTask esta executando.
Qual a vantagem de usar o ProgressDialog???

Marcelo Alves

unread,
Sep 9, 2014, 9:51:49 AM9/9/14
to androidb...@googlegroups.com
A Questão não é a vantagem e sim a necessidade . Se vc precisa fazer com que o usuário espere o processo terminar para usar tal funcionalidade da app, vale a pena, se ele pode usar a app e navegar enquanto essa task roda, não precisaria ... Então é mais questão de necessidade do que vantagem.

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Vinny Valente

unread,
Sep 9, 2014, 9:57:17 AM9/9/14
to androidb...@googlegroups.com
Foi o que eu pensei, mas coloquei pq achei q era um padrão.
Pra mim não vejo vantagem de utilizar esse recurso, mesmo pq, se eu quisesse que esperasse eu teria dado um getTask() e ai fluiria sem ser AsyncTask.
Vou retirar ProgressDialog, pq meu app pode ser utilizado pra outras coisas enquanto ele carrega as informações da activity principal.

Valeuuuu

Gabriel Augusto

unread,
Sep 9, 2014, 11:28:58 AM9/9/14
to Android Brasil Dev

O getTask() iria travar a sua interface..

--
Sent via mobile device

Marcelo Alves

unread,
Sep 9, 2014, 11:31:05 AM9/9/14
to androidb...@googlegroups.com
aconselho usar Services para esse caso

Vinny Valente

unread,
Sep 9, 2014, 11:39:32 AM9/9/14
to androidb...@googlegroups.com
Gabriel,

Fiz varios teste com a getTask e funcionou normalmente aque... a ProgressDialog bloqueia a minha tela e é como se estivesse executando getTask...

Vinny Valente

unread,
Sep 9, 2014, 11:40:23 AM9/9/14
to androidb...@googlegroups.com
Marcelo,

Vou dar uma olhada em Services, sou novato, mas o app esta funcionando bem com AsyncTask.

Valeu

Ernani Joppert Pontes Martins

unread,
Sep 9, 2014, 3:35:40 PM9/9/14
to Grupo de Desenvolvimento Android
O progress dialog é meio ruim para estes fins!

O ideal é vc colocar um progress indicator que pode ficar na sua UI
como uma referência visual pro usuário.

A activity em si tem uma progressbar se vc estiver usando actionbar

http://stackoverflow.com/questions/3092291/android-the-progress-bar-in-the-windows-title-does-not-display

Bloquear a UI toda para fazer um download é algo meio como uma
blasfêmia para UX.

Você pode rodar o pseudocódigo abaixo dentro do método doInBackground
para alterar o comportamento da progress, apenas fazendo quando for
necessário...

SuaActivity.this.runOnUiThread(new Runnable() {

@Override
public void run() {
// atualiza o progress
}
});

Abraço!

Ernani

Ernani Joppert Pontes Martins

unread,
Sep 9, 2014, 4:36:18 PM9/9/14
to Grupo de Desenvolvimento Android
Desculpe-me!

O AsyncTask tbm tem o método onProgressUpdate

protected void onProgressUpdate(Integer... progress) {
setProgressPercent(progress[0]);
}

Entendendo melhor sua pergunta, a resposta é:

Em alguns casos, vc tem um diálogo que mostra um progresso como
conveniência, mas, bloquear a UI, não seria ideal.

Acredito que ele seja usado em casos específicos onde diálogos
precisam ter um indicador de progresso...mas, não são modais.

Abraço,

Ernani

Márcio Fornari

unread,
Sep 9, 2014, 4:46:20 PM9/9/14
to androidb...@googlegroups.com
Aproveitando o assunto sobre o Async Task pessoal eu tenho uma dúvida.

Estou fazendo minha transmissão de Pedidos e os Itens do Pedido.

Então minha AsyncTask pega os pedidos cadastrados e faço um for para ir enviando um a um..

for(PedidosModel: pedidos){

}

E agora eu preciso enviar os Itens desses Pedidos através de Outra Task.

Então eu fiz desse jeito
for(PedidosModel: pedidos){

   numPedido = pedidos.getNumPedido();


}
............
.Márcio Fornari 
.Bacharel em  Sistemas de Informação
.Contatos pelo Telefone: (49)8814 - 3378
.ou pelo e-mail: marcio...@gmail.com

..........................................................................

Márcio Fornari

unread,
Sep 9, 2014, 4:47:47 PM9/9/14
to androidb...@googlegroups.com
Desculpe, o enter foi sem querer kkkk

mas seguindo a lógica, posso estar passando por parâmetro o número do pedido para outra task?

Como que ele vai se comportar?
Vai parar a TASK1 dos Pedidos para Enviar os Itens do Pedido e depois Continuar a TASK1 para enviar o próximo Pedido e assim sucessivamente?

Vinicius Valente

unread,
Sep 10, 2014, 12:17:26 PM9/10/14
to androidb...@googlegroups.com
Não entendi direito sua pergunta Marcio.

Vc quer enviar o Pedido 1  e depois enviar os itens do pedido 1... ai vc envia o pedido 2 e depois os itens do pedido 2.. é isso?

As tasks não vão esperar outras terminarem para ela terminar... 

Funciona assim:
Activity chama a AsyncTask 1.
Activity continua até o fim e a AsyncTask 1 as vezes nem começou a executar!
Se for com varias tasks será da mesma forma;
AsyncTask 1 executa a AsyncTask 2, mas continua o processo dela mesma (AsyncTask 1) sem saber se a AsyncTask 2 já executou.

Se vc quer executar a AsyncTask 1 e ter q esperar a task 2 terminar, não use async ou se for obrigado a usar use o get() da AsyncTask.

nomedaTask.get();





--
You received this message because you are subscribed to a topic in the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/androidbrasil-dev/fcsSe_COcHs/unsubscribe.
To unsubscribe from this group and all its topics, send an email to androidbrasil-...@googlegroups.com.

Maicon Strey

unread,
Sep 10, 2014, 12:26:29 PM9/10/14
to androidb...@googlegroups.com

Não misturem os assuntos. Essa thread é sobre progress dialog e não assynctask. Isso atrapalha a vida de quem procura ajuda no histórico do grupo.

Márcio Fornari

unread,
Sep 10, 2014, 12:32:40 PM9/10/14
to androidb...@googlegroups.com
Era isso mesmo Vinícius.
Eu quero enviar o pedido 1 e depois os itens do pedido 1, depois o Pedido 2 e os Itens do Pedido 2.
Mas como falei, eu tenho que passar o código do pedido conforme ele envia o pedido para eu buscar os itens desse pedido. Mas vou dar uma estudada sim nesse método. Obrigado
Reply all
Reply to author
Forward
0 new messages