2016-07-24 3 views
0

Этот простой Runnable, который я могу сделать postDelay, и removeCallbacks остановиться. Но мне это не нравится.Android pause Thread вместо удаления и остановки

Я хочу приостановить handler вместо остановки на removeCallbacks, а затем начать снова, чтобы возобновить приостановленный обработчик, как при воспроизведении/паузе музыки. Является ли это возможным?

/* START */ 
protected final Runnable mUpdateUI = new Runnable() { 
    public void run() { 
     displayData(); 
     mHandler.postDelayed(mUpdateUI, 5000); 
    } 
}; 

/* STOP */ 
customHandler.removeCallbacks(updateTimerThread); 

или другое решение для воспроизведения и паузы нити.

ответ

0

Попробуйте это, потому что пауза, как пауза в музыке не доступна:

public class LooperThread extends Thread { 

    private Handler mHandler; 

    public void run() { 
     Looper.prepare(); 

     synchronized (this) { 
      mHandler = new Handler() { 
       displayData(); 
      }; 
      notifyAll(); 
     } 

     Looper.loop(); 
    } 

    public synchronized Handler getHandler() { 
     while (mHandler == null) { 
      try { 
       wait(); 
      } catch (InterruptedException e) { 
       //Ignore and try again. 
      } 
     } 
     return mHandler; 
    } 
}