Devo visualizzare alcuni dati ogni 10 secondi. Qualcuno può dirmi come farlo?visualizza dati dopo ogni 10 secondi in Android
risposta
Probabilmente la cosa più semplice da fare è questa:
while(needToDisplayData)
{
displayData(); // display the data
Thread.sleep(10000); // sleep for 10 seconds
}
In alternativa è possibile utilizzare un timer:
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);
La prima soluzione congelerebbe il thread dell'interfaccia utente. –
Lirik, la tua prima soluzione sarebbe gettare un ANR non è assolutamente consigliabile. E sarebbe stato più bello se avessi menzionato se timer.scheduleAtFixedRate creerebbe un nuovo thread per l'attività da eseguire o usasse lo stesso thread su cui è stato chiamato. – tony9099
prima si blocca ui, la seconda lancia ex: 'java.lang.RuntimeException: impossibile creare il gestore all'interno del thread che non ha chiamato Looper.prepare()' – lxknvlk
C'è un altro modo, inoltre, che è possibile utilizzare per aggiornare l'interfaccia utente su specifica Intervallo di tempo. Le due opzioni sopra riportate sono corrette ma, a seconda della situazione, è possibile utilizzare metodi alternativi per aggiornare l'interfaccia utente su un intervallo di tempo specifico.
prima dichiarare una varialbe globale per Handler per modificare il controllo dell'interfaccia utente dal filo, come sotto
Handler mHandler = new Handler();
Ora creare un thread e utilizzare ciclo while per eseguire periodicamente l'attività utilizzando il metodo sonno del filo.
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();
grazie vecchio è sempre oro –
Impossibile fare riferimento a un non finale variabile mHandler all'interno di una classe interna definita in un altro metodo –
Il modificatore di 'mHandler' deve essere cambiato in' final'. – Mandrake
Andrahu era sulla strada giusta con la definizione di un gestore. Se hai un gestore che chiama le tue funzioni di aggiornamento, puoi semplicemente inviare delay the message al gestore per 10 secondi.
In questo modo non è necessario avviare la propria discussione o qualcosa di simile che possa portare a strani errori, problemi di debug e di manutenzione.
Basta chiamare:
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);
Ora la funzione handleMessage saranno chiamati dopo 10 secondi. Si potrebbe semplicemente inviare un altro messaggio nella funzione di aggiornamento causando l'intero ciclo di eseguire più volte
@schwiz Il collegamento è interrotto ... – Radu
C'è un modo semplice per visualizzare alcuni dati dopo ogni 10 secondi.
@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();
}
C'è anche un altro modo utilizzando Handler
final int intervalTime = 10000; // 10 sec
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
//Display Data here
}
}, intervalTime);
Ogni 10 secondi aggiornato automaticamente lo schermo app o attività rinfrescato
creare all'interno onCreate metodo() ho provato questo codice funzionerà per 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();
questo non è il modo corretto per controllare la mia ana qui il tuo thread ui è in attesa ed è per questo che potrebbe accadere che la tua app non risponda alla modalità –
voglio automaticamente richiamare url e metodo o qualsiasi cosa come posso fare –
- 1. GcWatcher.finalize scaduto dopo 10 secondi
- 2. Core Bluetooth: CBPeripheral disconnette ogni ~ 10 secondi
- 3. Esegui codice ogni 10 secondi ma inizia anche 0 secondi
- 4. Scattare foto in Android ogni 5 secondi
- 5. come rendere l'animazione CSS da riprodurre ogni 10 secondi
- 6. Come ricaricare JSON con AJAX ogni 10 secondi
- 7. tenta di aprire una pagina ogni 10 secondi
- 8. Auto carica e aggiorna Div ogni 10 secondi con jQuery
- 9. Javascript: la funzione di chiamata dopo 10 secondi, poi ogni 1 minuto
- 10. JavaFX MediaPlayer - La musica si interrompe dopo 10 secondi
- 11. Nagios: CRITICO - Timeout del socket dopo 10 secondi
- 12. Android: Come inviare la richiesta HTTP via servizio ogni 10 secondi
- 13. Come cancellare un AsyncTask Android dopo un certo periodo di tempo? (Ad esempio 10 secondi)
- 14. cambio immagine ogni 30 secondi -
- 15. Reindirizza 10 secondi Conto alla rovescia
- 16. Esegui la funzione dopo 5 secondi in Android
- 17. Ripeti animazione ogni 3 secondi
- 18. espressione Cron ogni 50 secondi in quarzo
- 19. Thread Java ogni X secondi
- 20. TIMEZONE_CHANGED intento ricevuto ogni pochi secondi
- 21. come programmare chiamate ajax ogni N secondi?
- 22. Ricarica JPanel ogni X secondi (con discussioni?)
- 23. Come posso attendere 10 secondi senza bloccare l'interfaccia utente dell'applicazione in Android
- 24. Nexus 10 camera.release si blocca per 30 secondi
- 25. comando Esegui cURL ogni 5 secondi
- 26. Android PlacePicker si chiude 2 secondi dopo il lancio
- 27. Qt: Come utilizzare QTimer per stampare un messaggio su un QTextBrowser ogni 10 secondi?
- 28. Come si usa Node.js per inviare un'e-mail ogni 10 secondi?
- 29. Esegui un'operazione ogni x secondi per y minuti in C#
- 30. Come leggere le ultime righe da un grande file con Vai ogni 10 secondi
@Farha, spero che la mia risposta sia stata utile. – Kiril