2013-07-03 20 views

risposta

16

Handler non ha un timer da modificare. Stai postando alla coda di eventi di un thread, dove sono in esecuzione anche molte altre cose.

Puoi cancellare postato Runnable 's:

handler.removeCallbacks(counterz); 

e post di nuovo, per riprendere.

+0

Posso anche mostrare un popup quando il gestore è in pausa? – Si8

3

Il gestore non ha un metodo pause. È necessario annullare ed eseguire nuovamente.

public final void removeCallbacks (Runnable r)

Rimuovere eventuali messaggi in attesa di r Runnable che si trovano nella coda di messaggi.

Quando non richiesto è necessario chiamare m_handler.removeCallbacks(m_handlerTask) per annullare la corsa. Se è necessario nuovamente, è necessario eseguire nuovamente l'attività.

  Handler m_handler; 
      Runnable m_handlerTask ; 
      m_handler = new Handler(); 
      m_handlerTask = new Runnable() 
      { 
       @Override 
       public void run() { 
          // do something 

        m_handler.postDelayed(m_handlerTask, 1000);  

       } 
      }; 
      m_handlerTask.run(); // call run 

Supponiamo di utilizzare un timer. Anche il timer non ha il metodo di pausa.

Problemi correlati