mostrar datos cada 10 segundos en Android

Tengo que mostrar algunos datos después de cada 10 segundos. ¿Puede alguien decirme cómo hacer eso?

También hay otra manera que puede usar para actualizar la UI en un intervalo de tiempo específico. 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.

Primero declare un varialbe global para Handler para actualizar el control de UI desde el hilo, como se muestra a continuación

Handler mHandler = new Handler(); 

Ahora crea un subproceso y usa el ciclo while para realizar la tarea periódicamente utilizando el método de suspensión del subproceso.

  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(); 

Probablemente lo más simple de hacer es esto:

 while(needToDisplayData) { displayData(); // display the data Thread.sleep(10000); // sleep for 10 seconds } 

Alternativamente, puede usar 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); 

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 retrasar el mensaje enviado al controlador durante 10 segundos.

De esta forma, no es necesario que inicie su propio hilo o algo así que ocasionará extraños errores, errores y problemas de mantenimiento.

Solo llama:

  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 se llamará a su función handleMessage después de 10 segundos. Podrías enviar otro mensaje en tu función de actualización haciendo que todo el ciclo se ejecute una y otra vez

También hay otra forma de usar el controlador

 final int intervalTime = 10000; // 10 sec Handler handler = new Handler(); handler.postDelayed(new Runnable() { @Override public void run() { //Display Data here } }, intervalTime); 

Hay una manera simple de mostrar algunos datos después de 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(); } 

Cada 10 segundos actualiza automáticamente la pantalla de tu aplicación o actividad renovada

crear dentro de método onCreate () intenté este código funcionará para mí

 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();