public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()){
case R.id.rollDice:
Random ranNum = new Random();
int number = ranNum.nextInt(6) + 1;
diceNum.setText(""+number);
sum = sum + number;
for(i=0;i<8;i++){
for(j=0;j<8;j++){
int value =(Integer)buttons[i][j].getTag();
if(value==sum){
inew=i;
jnew=j;
buttons[inew][jnew].setBackgroundColor(Color.BLACK);
//I want to insert a delay here
buttons[inew][jnew].setBackgroundColor(Color.WHITE);
break;
}
}
}
break;
}
}
Quero definir um atraso entre o comando entre alterar o plano de fundo. Tentei usar um cronômetro de threads e tentei correr e capturar. Mas não está funcionando. Eu tentei isso
Thread timer = new Thread() {
public void run(){
try {
buttons[inew][jnew].setBackgroundColor(Color.BLACK);
sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
timer.start();
buttons[inew][jnew].setBackgroundColor(Color.WHITE);
Mas está apenas mudando para preto.
Você pode usar o
CountDownTimer
que é muito mais eficiente do que qualquer outra solução publicada. Você também pode produzir notificações regulares em intervalos ao longo do caminho usando seuonTick(long)
métodoDê uma olhada neste exemplo, mostrando uma contagem regressiva de 30 segundos
fonte
Se você usa atraso com frequência em seu aplicativo, use esta classe de utilitário
Uso:
fonte
Usando o
Thread.sleep(millis)
métodofonte
Se você deseja fazer algo na interface do usuário em intervalos regulares, a opção muito boa é usar o CountDownTimer:
fonte
Resposta do manipulador no Kotlin:
1 - Crie uma função de nível superior dentro de um arquivo (por exemplo, um arquivo que contém todas as suas funções de nível superior):
2 - Em seguida, ligue para onde você precisar:
fonte
Você pode usar isto:
e para o atraso em si, adicione:
onde a
delay
variável está em milissegundos; por exemplo, definidodelay
como 5000 para um atraso de 5 segundos.fonte
Aqui está um exemplo em que eu mudo a imagem de fundo de uma para outra com um atraso de desvanecimento alfa de 2 segundos nos dois sentidos - desvanecimento de 2 segundos da imagem original em desvanecimento de 2 segundos na segunda imagem.
fonte