2017-03-16 183 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]