private void onTick() {

    synchronized (this) {
      Canvas canvas = this.lockCanvas();
      if (canvas == null) return;

      canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);

      mDrawingList.addAll(mDisplayList);
      Collections.sort(mDrawingList);
      for (DisplayBase displayBase : mDrawingList) {
        if (displayBase == null) {
          continue;
        }
        displayBase.draw(canvas);
      }
      mDrawingList.clear();

      this.unlockCanvasAndPost(canvas);
    }
  }