Dica de estudo sobre Threads

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

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

especificamente como lidar Threads em android

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

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

1 curtida