Dica de estudo sobre Threads

4 respostas
vagner_Portela

Preciso estudar sobre Theads! alguém me indica um pôster?

4 Respostas

jonathan.sky

Você quer estudar especificamente como lidar Threads em android, ou quer saber sobre Thread em java?

vagner_Portela

especificamente como lidar Threads em android

jonathan.sky

O android tem uma Thread responsavel para cada tela, sendo que só ela pode ser usada para atualizar a tela conhecida como UIThread.

Exemplo: baixo informação, quando for modificar a imagem, terá que ser dentro da UIThread.
Um atalho de seu uso chamado runonUiThread. Esse é um dos detalhes mais importantes quando trabalhamos com Thread.

O outro é, se a tela ficar alguns segundos sem responder, ela quebra, por essa razão, seu app sempre que for fazer qualquer operação pesada deve rodar em uma Thread a parte.

//operação de IO pesada - baixando imagem
new Thread(() ->  {
 Img =  //baixa imagem

   atualizaImagem(Imagem imagem);
}
 
atualizaImagme(Imagem imagem) {

runOnUIThread() {  //atualizando imagem pela ui Thread
         Imagem img =  (Imagem)   view.findView(R.id.img);
  }
 }

}

No android é simples, sempre quando for fazer algo pesado deve iniciar uma Thread como em java para fazer aquilo, pois irá trabalhar em background.

Quando for atualizar a tela sempre deve usa

C

Eu gosto desses tutoriais sobre Thread que tem no android.developer

https://developer.android.com/guide/components/processes-and-threads.html?hl=pt-br

https://developer.android.com/training/multiple-threads/run-code.html

Eles são um pouquinho complicados, pelo menos pra mim, mas dão uma boa ideia do que pode ser feito.

Como o colega jonathan disse. os componentes de visualização de um activity, tudo aquilo que é uma especialização de View, é controlado pela UIThread. Porém o método runOnUIThread encapula uma chamada a do metodo Handler.post. Handler. A classe Handler permite que você interaja como uma instância de uma Thread, mande mensagens e atualize Views.

O entendimento sobre Threads vai além de atualizar Views através do metodo runUIThread. Acho que para implementar apps multithread, o programador vai precisar estudar sobre AsyncTasks e Services em android.

Bons estudos

Criado 19 de junho de 2017
Ultima resposta 6 de jul. de 2017
Respostas 4
Participantes 3