2010-01-31 10 views
7

sto sviluppando un'applicazione Android ho bisogno di passare da un'attività all'altra in quella prima ho bisogno di cambiare i colori del pulsante quindi un ritardo (in modo che il) e quindi chiamare questa stessa funzione (quella che sto in rito ora)Equivalente Java di [self performSelector: foo afterDelay: 2]

in Objective-C è fatto con [auto performSelector: foo afterDelay: 2]

quindi ho bisogno al suo Java equivalente.

risposta

9

Per le azioni ritardate in Android, consiglierei di utilizzare Android Handler class con il suo postDelayed() method.

Creare un gestore per il vostro Activity come una variabile membro:

private Handler mHandler = new Handler(); 

e quindi aggiungere la vostra azione di ritardo come segue:

mHandler.postDelayed(new Runnable() { 
     public void run() { 
      //Do you thing here 
     } 
    },2000); 
+0

Si noti che non hanno necessariamente bisogno di un gestore per questo, se non ne hai già uno. 'postDelayed()' è anche disponibile su qualsiasi widget (ad esempio, 'Button'). – CommonsWare

+1

La funzione run() viene eseguita sullo stesso thread o su un thread diverso rispetto alla classe in cui è stato richiamato? Se diverso, c'è un modo per farlo funzionare nello stesso thread? –

Problemi correlati