manolazo
25/08/14, 01:22:55
Buenas.
Tengo una Activity en la cual hago mucho uso de la modificacion de views pasado un tiempo en milisegundos.
Para ello en su dia se me ocurrio usar TimerTask pero debido a que TimerTask actua como un Thread , hay que hacer uso o bien de un handler o bien de un AsyncTask con lo que opte por usar handlers. a(unque en vez de handlers tambien podria haber usado MyActivity.this.runOnUiThread(new Runnable(){ )
A lo que voy, que tengo la activity llena de sentencias de este tipo:
Ej:
new Timer().schedule(new TimerTask(){
@Override
public void run() {
handler.post(new Runnable(){
@Override
public void run() {
setVistaDeInicio(true);
}
});
}
}, 300);
Ej:
new Timer().schedule(new TimerTask() {
new Thread() {
@Override
public void run() {
while (j < (int) scoreSystem()) {
try {
Thread.sleep(matrizTimeThread[3]);
} catch (InterruptedException e) {
e.printStackTrace();
}
handler.post(new Runnable() {
@Override
public void run() {
textPuntos.setText(String.valueOf(j));
}
});
j += matrizTimeThread[2];
}
handler.post(new Runnable() {
@Override
public void run() {
textPuntos.setText(String.format("%.2f",scoreSystem()));
}
});
}
}.start();
No se si el calemtamiento de la CPU del movil es debido a este tipo de Timers o si cambiar dichas sentencias por el uso de postDelayed:
handler.postDelayed(new Runnable(){
@Override
public void run() {
activateGridlay(true);
new HiloComienzoJuego().start();
}
}, 500);
cambiaria las cosas y seria mas eficiente o daria lo mismo??. Ya digo que me da la impresion de que se calienta un poco o quizas son cosas mias .
Un saludo.
Tengo una Activity en la cual hago mucho uso de la modificacion de views pasado un tiempo en milisegundos.
Para ello en su dia se me ocurrio usar TimerTask pero debido a que TimerTask actua como un Thread , hay que hacer uso o bien de un handler o bien de un AsyncTask con lo que opte por usar handlers. a(unque en vez de handlers tambien podria haber usado MyActivity.this.runOnUiThread(new Runnable(){ )
A lo que voy, que tengo la activity llena de sentencias de este tipo:
Ej:
new Timer().schedule(new TimerTask(){
@Override
public void run() {
handler.post(new Runnable(){
@Override
public void run() {
setVistaDeInicio(true);
}
});
}
}, 300);
Ej:
new Timer().schedule(new TimerTask() {
new Thread() {
@Override
public void run() {
while (j < (int) scoreSystem()) {
try {
Thread.sleep(matrizTimeThread[3]);
} catch (InterruptedException e) {
e.printStackTrace();
}
handler.post(new Runnable() {
@Override
public void run() {
textPuntos.setText(String.valueOf(j));
}
});
j += matrizTimeThread[2];
}
handler.post(new Runnable() {
@Override
public void run() {
textPuntos.setText(String.format("%.2f",scoreSystem()));
}
});
}
}.start();
No se si el calemtamiento de la CPU del movil es debido a este tipo de Timers o si cambiar dichas sentencias por el uso de postDelayed:
handler.postDelayed(new Runnable(){
@Override
public void run() {
activateGridlay(true);
new HiloComienzoJuego().start();
}
}, 500);
cambiaria las cosas y seria mas eficiente o daria lo mismo??. Ya digo que me da la impresion de que se calienta un poco o quizas son cosas mias .
Un saludo.