Tengo que mostrar algunos datos cada 10 segundos. ¿Puede alguien decirme cómo hacer eso?mostrar datos después de cada 10 segundos en Android
Respuesta
Probablemente la cosa más sencilla de hacerlo es la siguiente:
while(needToDisplayData)
{
displayData(); // display the data
Thread.sleep(10000); // sleep for 10 seconds
}
Como alternativa se puede utilizar un temporizador:
int delay = 1000; // delay for 1 sec.
int period = 10000; // repeat every 10 sec.
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask()
{
public void run()
{
displayData(); // display the data
}
}, delay, period);
Esa primera solución congelaría el hilo de UI. –
Lirik, su primera solución arrojaría un ANR definitivamente no es aconsejable. Y hubiera sido mejor si hubiera mencionado si timer.scheduleAtFixedRate crearía un nuevo hilo para la tarea o usaría el mismo hilo al que se le llamó. – tony9099
primero congela ui, segundo tira ex: 'java.lang.RuntimeException: No se puede crear manejador dentro de subproceso que no ha llamado Looper.prepare()' – lxknvlk
Hay un otro modo también que se puede utilizar para actualizar la interfaz de usuario en concreto intervalo de tiempo. Las dos opciones anteriores son correctas, pero dependiendo de la situación, puede usar formas alternativas de actualizar la UI en un intervalo de tiempo específico.
Primera declarar una varialbe global para Handler para actualizar la interfaz de usuario de control de Thread, como a continuación
Handler mHandler = new Handler();
Ahora crea un hilo y utilizar el bucle while para realizar periódicamente la tarea utilizando el método del sueño de la rosca.
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
while (true) {
try {
Thread.sleep(10000);
mHandler.post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
// Write your code here to update the UI.
}
});
} catch (Exception e) {
// TODO: handle exception
}
}
}
}).start();
gracias viejo siempre es oro –
No se puede hacer referencia a un no final variable mHandler dentro de una clase interna definida en un método diferente –
El modificador de 'mHandler' debe cambiarse a' final'. – Mandrake
Andrahu estaba en el camino correcto con la definición de un controlador. Si tiene un controlador que llama a sus funciones de actualización, simplemente puede enviar delay the message al controlador durante 10 segundos.
De esta forma no es necesario que inicie su propio hilo o algo así que ocasionará errores extraños, problemas de depuración y mantenimiento.
Sólo tiene que llamar:
Handler myHandler = new MyUpdateHandler(GUI to refresh); <- You need to define a own handler that simply calls a update function on your gui.
myHandler.sendMessageDelayed(message, 10000);
Ahora su función handleMessage se llamará después de 10 segundos. Podría simplemente enviar otro mensaje en su función de actualización haciendo que todo el ciclo se ejecute una y otra vez
@schwiz El enlace está roto ... – Radu
Hay una manera simple de mostrar algunos datos cada 10 segundos.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_launcher);
ActionStartsHere();
}
public void ActionStartsHere() {
againStartGPSAndSendFile();
}
public void againStartGPSAndSendFile() {
new CountDownTimer(11000,10000) {
@Override
public void onTick(long millisUntilFinished) {
// Display Data by Every Ten Second
}
@Override
public void onFinish() {
ActionStartsHere();
}
}.start();
}
También hay otra manera mediante Handler
final int intervalTime = 10000; // 10 sec
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
//Display Data here
}
}, intervalTime);
Cada 10 segundos actualiza automáticamente la pantalla de su aplicación o actividad refrescado
crear dentro onCreate método() i probado este código funcionará para me
Thread t = new Thread() {
@Override
public void run() {
try {
while (!isInterrupted()) {
Thread.sleep(1000);
runOnUiThread(new Runnable() {
@Override
public void run() {
//CALL ANY METHOD OR ANY URL OR FUNCTION or any view
}
});
}
} catch (InterruptedException e) {
}
}
};t.start();
esta no es la forma correcta de verificar mi ans aquí su hilo de la interfaz de usuario está en espera y es por eso que puede que su aplicación vaya al modo de no respuesta –
quiero volver a llamar automáticamente url y método o cualquier cosa ¿cómo puedo hacer? –
- 1. Android Cambiar la imagen cada 10 segundos
- 2. ¿Ocultar un diseño después de 10 segundos en Android?
- 3. jQuery - llamada AJAX cada 10 segundos
- 4. intente abrir una página cada 10 segundos
- 5. Cerrar cuadro modal después de 10 segundos
- 6. IPhone SendDelegateMessage no regresó después de esperar 10 segundos
- 7. SendDelegateMessage no pudo regresar después de esperar 10 segundos
- 8. Cómo recargar JSON con AJAX cada 10 segundos
- 9. Cómo mostrar div durante 10 segundos y luego ocultarlo
- 10. cómo mostrar una actividad automáticamente después de 5 segundos
- 11. Cómo cancelar una Android AsyncTask después de un cierto período de tiempo? (Por ejemplo, 10 segundos)
- 12. Redirigir 10 segundos Cuenta atrás
- 13. Mostrar y fundir UIImageView después de 2 segundos
- 14. Mostrar notificaciones de Android cada cinco minutos
- 15. Recargar datos AJAX cada X minutos/segundos, jQuery
- 16. Qt: ¿Cómo usar QTimer para imprimir un mensaje a QTextBrowser cada 10 segundos?
- 17. Android buscapersonas cambia páginas automáticamente después de unos segundos
- 18. Mensaje de fundido después de 10 segundos, borrando los elementos de entrada usando jQuery
- 19. Cómo ejecutar un método cada X segundos
- 20. Cómo cerrar (ocultar automáticamente) Ventana de WPF después de 10 segundos usando el temporizador
- 21. cambio de imagen cada 30 segundos -
- 22. php cron job cada 10 minutos
- 23. formato android texto de edición para mostrar espacios después de cada 4 caracteres
- 24. Java Thread cada X segundos
- 25. SELECCIONAR/AGRUPAR POR - segmentos de tiempo (10 segundos, 30 segundos, etc.)
- 26. PHP Script Veces después de 45 segundos
- 27. cómo programar llamadas ajax cada N segundos?
- 28. jQuery eliminar .Append después de 5 segundos
- 29. Tooltip Balloon Desaparece después de 5 segundos
- 30. Cerca de diálogo después de Delphi segundos [x]
@ Farha, espero que mi respuesta haya sido útil. – Kiril