|
||
|
|
|
|||||||
| Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
![]() |
|
|
Herramientas |
|
#1
|
||||
|
||||
|
Ejecutar cada cierto tiempo
¿como puedo hacer para que una función se ejecute cada cierto tiempo?
lo que quiero es que una vez por segundo se ejecute una función que me actualice unos textos. Ya he mirado por internet y parece que se puede hacer con Timer, pero no consigo que funcione, a ver si alguien me explica o me pone un ejemplo de como se puede hacer esto. |
|
|
|
#2
|
||||
|
||||
|
quiza se podria hacer algo asi.
[PHP] private Handler h = new Handler(); private Runnable r; r = new Runnable() { @Override public void run() { h.postDelayed(this, 1000); tufuncion(); } }; para ejecutar h.post(r); para parar h.removeCallbacks(r); [/PHP]
__________________
Prueba mis aplicaciones para android:
Signature Maker - Código en GitHub Pain Log - Código en GitHub Square attack |
|
#3
|
||||
|
||||
|
otra opción es implementarlo en una clase por si necesitas tener varios objetos a la vez llamando a la funcion y asi pouedes hacer un inicio fin en el onStop y en el OnPause para cuando cambias de actividad dejarlos muertos
[PHP] public class repite { private Handler h = new Handler(); private Runnable r; public repite() { super(); } public repite() { super(); repitefuncion(); } public void inicio() { h.post(r); } public void fin() { h.removeCallbacks(r); } private void repitefuncion() { r = new Runnable() { @Override public void run() { h.postDelayed(this, 1000); tufuncion(); } }; } }[/PHP] Aunq no se si es la mejor manera yo soy muy novato
__________________
Prueba mis aplicaciones para android:
Signature Maker - Código en GitHub Pain Log - Código en GitHub Square attack |
|
#4
|
||||
|
||||
|
Yo también uso los Handler, es lo mejor para actualizar elementos de la interfaz de usuario porque ya estás en el hilo principal y evitas crear más hilos.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
|
|
#5
|
||||
|
||||
|
Ya he pulsado CTRL+SHIFT+O para que añada algún import, pero parece que no van por ahí los tiros... Por favor, ayuda. |
|
#6
|
||||
|
||||
|
declaraciones te las metes en la clase
[PHP]private Handler h = new Handler(); private Runnable r;[/PHP] el codigo donde tu quieras, en el oncreate en una funcion o donde quieras usarlo [PHP]r = new Runnable() { @Override public void run() { h.postDelayed(this, 1000); tufuncion(); } };[/PHP] Y la llamada como lo declaraste en la clase pues en cualquier parte que quieras hacer la ejecución, por ejemplo en el onResume y en el onStop [PHP]para ejecutar h.post(r); para parar h.removeCallbacks(r); [/PHP] Te lo digo asi a ojo no tengo aqui el java instalado sorry puede q cometa errores
__________________
Prueba mis aplicaciones para android:
Signature Maker - Código en GitHub Pain Log - Código en GitHub Square attack |
![]() |
Estás aquí
|
||||||
|
||||||