Thread chamando método

6 respostas
S

Fala galera… eu sou novo em java, e mais ainda em android…

Maas, aos trancos e barrancos desenvolvi um código para um jogo de cartas, que ficou show…

O problema é que escrevi ele todo em uma classe, que seria a activity do jogo em si, e depois eu modificaria para fazer o início do jogo, com opções e tal…

O problema apareceu quando comecei a fazer a parte do design…
Claro, o sistema joga as cartas e tal, só que ele faz isso direto, sem que o jogador possa ver que carta ele jogou, quem ganhou e tal… ai percebi que ia precisar de Threads…

Maaas, não sei o que fazer… tipo, eu criei um método pra atualizar as ImageViews que tem as cartas, mas eu tento criar uma Thread secundária no código que chame esse método e de um sleep, mas isso é impossível, pois o Thread não pode chamar métodos né?

Alguem pode me dar uma luz nisso?

muito grato xD

6 Respostas

A

Olá
Você pode chamar métodos sim, só não pode alterar a tela (views) diretamente.
Para alterar a tela use um Handler ou o runOnUiThread.
No meu blog tem uns exemplos, dá uma olhada.

S

Obrigado pela resposta… seu blog já me ajudou em muito… mas será q podia me dar o código mastigado? huauhasuhsa

assim ó, eu tenho um método que atualiza toda a parte visual, e depois eu queria fazer um sleep de 2000, por ai, tipo assim:

atualiza();

try{

sleep(2000);}

catch{(Exception E)}

Tem como fazer exibir o que esta dentro do atualiza ates do sleep? Pela thread main?

Grato…

S

tentei isso e não funcionou =p

h.post(new Runnable() {
            	           public void run() {
            	        	   atualizajc();            	       
            	        	   }
            	          });
            		
            		
            		try{
            		Thread.sleep(2000);
            		}catch(Exception e) {}

h é um handler... e isso ta executando dentro de um if...

S

tentei isso e não funcionou =p

h.post(new Runnable() {
            	           public void run() {
            	        	   atualizajc();            	       
            	        	   }
            	          });
            		
            		
            		try{
            		Thread.sleep(2000);
            		}catch(Exception e) {}

h é um handler... e isso ta executando dentro de um if...

S

tentei isso e não funcionou =p

h.post(new Runnable() {
            	           public void run() {
            	        	   atualizajc();            	       
            	        	   }
            	          });
            		
            		
            		try{
            		Thread.sleep(2000);
            		}catch(Exception e) {}

h é um handler... e isso ta executando dentro de um if...

A

Não entendi exatamente o que pretende, mas dá uma olhada num tutorial sobre game do Marky.Vasconcelos no pontoV, deve te ajudar.

Criado 30 de agosto de 2012
Ultima resposta 30 de ago. de 2012
Respostas 6
Participantes 2