2017-03-16 257 views
1

Handler發佈的Android MessageQueue的大小是否有限?Android MessageQueue最大尺寸

下面的代碼拋出到消息隊列和行爲像一個循環,我不知道我知道要解釋一下:

private void startTracking() 
{ 
    mIsTracking = true; 

    mTrackingHandler.post(new Runnable() { 
     @Override 
     public void run() { 
      if(!mIsTracking) 
       return; 

      mHeadTracker.getLastHeadView(mHeadTransform.getHeadView(), 0); 
      mTrackingHandler.postDelayed(this, 10); 
     } 
    }); 
} 

回答

0

沒有限制,但應用程序可以與OutOfMemoryError異常崩潰。

0

50

不過你不必擔心會超過這個限制,如果你使用Message.obtain()。

獲取消息的首選方式是調用{@link #obtain()Message.obtain()} [2]

雖然消息的構造函數是公共的,最好的方式來獲得 *其中之一是調用{@link #obtain Message.obtain()}或 * {@link處理器#obtainMessage處理器之一。 acquireMessage()}方法,它們將從循環對象池中拉出 *。 [3]