Autore Topic: chiamare a intervalli regolari un ogetto Runnable  (Letto 879 volte)

Offline psicomant

  • Utente junior
  • **
  • Post: 95
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    OSX 10.6.5
chiamare a intervalli regolari un ogetto Runnable
« il: 05 Dicembre 2010, 16:05:04 CET »
0
Salve,
volevo sapere come fare per lanciare un oggetto runnable, tramite handler, regolarmente.

Penso di poter partire da questo codice:
Codice (Java): [Seleziona]
Handler handler = new Handler();
               
                final Runnable insertObservation = new Runnable() {
                    public void run() {
                        // (1) get today's date
                        Date today = Calendar.getInstance().getTime();
                        // (2) create our "formatter" (our custom format)
                        SimpleDateFormat formatter1 = new SimpleDateFormat("yyyy-MM-dd");  // 2010-12-03T17:46:15+11:00
                        SimpleDateFormat formatter2 = new SimpleDateFormat("hh:mm:ssZ");
                        // (3) create a new String in the format we want
                        String newdate1 = formatter1.format(today);
                        String newdate2 = formatter2.format(today);
                        String completedate = "Service date: "+ newdate1 + "T" + newdate2;
                        String finalresult = result.replaceAll("$$DATA$$", completedate);
                        Buffer.insertObservationIntoBuffer(finalresult);
                    }
                };
               
                handler.postDelayed(insertObservation, 5000);

cosi lo avvio dopo 5 secondi dalla chiamata, ma se lo volessi attivare ogni 5 secondi?

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +507
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:chiamare a intervalli regolari un ogetto Runnable
« Risposta #1 il: 05 Dicembre 2010, 16:16:40 CET »
0
Usa la classe Timer e TimerTask
Codice (Java): [Seleziona]
Timer timer = new Timer();
timer.scheduleAtFixedRate( new TimerTask() {

        @Override
        public void run () {
        //Fai quello che devi
        }

}, 5000, 5000 );

http://download.oracle.com/javase/1.5.0/docs/api/java/util/Timer.html#scheduleAtFixedRate(java.util.TimerTask, long, long)