runOnUiThread, Atalho de Acesso a Thread Principal no Android

Receba em primeira mão o conteúdo exclusivo do Blog, além de promoções de livros e cursos de programação. Você receberá um email de confirmação. Somente depois de confirmar é que poderei lhe enviar o conteúdo exclusivo por email.

Email inválido.
Blog /Android /runOnUiThread, Atalho de Acesso a Thread Principal no Android

runOnUiThread, Atalho de Acesso a Thread Principal no Android

Vinícius Thiengo11/01/2014
(3328) (6) (23) (1)
Go-ahead
"Não compare você mesmo com outros, pois é ai que começa a perder confiança em si próprio."
Will Smith
Código limpo
Capa do livro Refatorando Para Programas Limpos
TítuloRefatorando Para Programas Limpos
CategoriaEngenharia de Software
AutorVinícius Thiengo
Edição
Ano2017
Capítulos46
Páginas598
Comprar Livro
Conteúdo Exclusivo
Receba em primeira mão o conteúdo exclusivo do Blog, além de promoções de livros e cursos de programação.
Email inválido

Opa! Blz?

Nesse vídeo dou continuidade ao último vídeo sobre acesso a Thread Principal do Android, porém dessa vez mostro o método de atalho, o método runOnUiThread. Sem a necessidade de uso da classe handler, com esse método nós já temos a vantagem de diminuição de código e necessidade de menor controle desse, pois com handler nós além de ter que declararmos uma variável do tipo Handler temos também que instanciar essa classe. A principio vc não viu muita vantagem, o problema é quando seu código começa a inchar, sua APP ganha mais funcionalidades, ai o proble começa a surgir, pois auquelas linhas a mais não são poucas linhas a mais que tem de ter controle, são muitas linhas a mais. Vale ressaltar que dou ênfase a classe Activity quando implemento uma pseudo classe utilitária para baixar a imagem, pois o parâmetro que utilizo é do tipo Activity e não Context que é o que mais utilizei nos exemplos até aqui. A explicação desse parâmetro do tipo Activity é que o método runOnUiThread é pertecente a ele e não a classe Context, mesmo a classe Activity herdando também dessa classe. Mas enfim, vou evitar mais delongas e deixar você assistir ao vídeo.

O link para download do projeto se encontra logo abaixo no post.

Se você não faz a mínima ideia do que seja a Thread Principal do Android, segue link do post em que falo sobre essa:

Entendendo a Thread Principal de Uma APP Android

Página da classe Activity (sessão runOnUiThread) no site oficial do Android

Vlw

Receba em primeira mão o conteúdo exclusivo do Blog, além de promoções de livros e cursos de programação.
Email inválido

Relacionado

Style, String, Dimen, Color e WindowNoTitle no Android, Entendendo e UtilizandoStyle, String, Dimen, Color e WindowNoTitle no Android, Entendendo e UtilizandoAndroid
Spinner (ou Select) no Android, Entendendo e UtilizandoSpinner (ou Select) no Android, Entendendo e UtilizandoAndroid
Mudar Ícone de Sua APP Android Quando Usuário já a InstalouMudar Ícone de Sua APP Android Quando Usuário já a InstalouAndroid
Infográfico - 10 Conhecimentos Para Um Bom Desenvolvimento em AndroidInfográfico - 10 Conhecimentos Para Um Bom Desenvolvimento em AndroidAndroid

Compartilhar

Comentários Facebook

Comentários Blog (6)

Para código / script, coloque entre [code] e [/code] para receber marcação especifica.
Forneça seu nome válido.
Forneça seu email válido.
Forneça o comentário.
Enviando, aguarde...
05/02/2015
Olá, Thiengo estou usando esse exemplo para comunicar com servidor web (Using Caché Server Pages (CSP) da InterSystems) e até funciona, mas após 4 vezes clicando no botão de enviar dá erro e fecha o app no emulador do android. Você saberia me dizer algo o que pode ser ?
Responder
Vinícius Thiengo (0) (0)
05/02/2015
Fala Luis, blz?
Esta travando o botão quando já tem uma chamada sendo realizada ao serve Web ou está deixando o usuário realizar clicks seguidos mesmo quando já há dados sendo baixados? De qualquer forma não utilize essa versão para baixar dados da Web, recomendo que utilize o Volley (http://www.thiengo.com.br/volley-no-android-entendendo-e-utilizando) que é tb recomendado pelo Google. Abraço
Responder
05/02/2015
Na verdade clico no botão espero o retorno e depois clico denovo, na 4 vez o app é fechado. Mas valeu pela dica, irei tentar o Volley. Obrigado.
Responder
07/02/2015
Olá Thiengo, resolvi o problema. Usei uma solução ruim, mas que funciona segundo um blog do Vanderson Guidi que encontrei na internet utilzei o StrictMode para permitir que seja possível efetuar uma operação de rede na thread principal.

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);
...
}
Responder
Vinícius Thiengo (0) (0)
07/02/2015
Ok Luis, porém não recomendo e nem mesmo o Android (Google), pois operações pesadas (operações de rede estão neste conjunto) devem ser realizada fora da thread principal, não somente pela possível Exception, mas tb pq operações pesadas na Thread UI travam a tela do usuário atrapalhando em mt a utilização da APP. Qualquer conexão de rede via Android é considerada pesada, pois vc não tem controle da situação (velocidade) da rede. Eu tb utilizo gambiarra quando necessário, mas essa gambiarra, pelo menos para mim, vai lhe dar mta dor de cabeça tendo em mente que há "várias" formas de realizar operações de rede de maneira segura, digo, fora da Thread principal. Abraço
Responder
08/02/2015
Valeu pela dica. J? encontrei uma solu??o usando a classe Asynctask. Aprendo muito com o seu blog e j? consigo desenvolver uns apps bem  sem precisar em fazer um curso de android.  Sucesso.
Responder