2016-07-24 93 views
0

這個簡單的Runnable其中我可以postDelay開始和removeCallbacks停止。但我不喜歡那樣。Android暫停線程而不是刪除並停止

我想暫停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; 
    } 
}