title: Android SurfaceView/Canvas flickering after trying to clear it
body: <p>So I am trying to clear the Canvas using canvas.drawColor(Color.BLACK) but if I just call this once, the display flickers and displays the old drawing which should have been covered up by the drawColor.</p>
  
  <p>Here is the important bits of my code -</p>
  
  <pre><code>// This method is called by a Thread                
  public void update() {
      Canvas canvas = holder.lockCanvas(null);
      if (canvas != null) {
          onDraw(canvas);
      }
      holder.unlockCanvasAndPost(canvas);
  }
  
  @Override
  protected void onDraw(Canvas canvas) {
  
      if (toClear) {
          canvas.drawColor(Color.BLACK);
  
          //if this is not set to change back to false, it does not flicker
          toClear = false;
      }
  
      //Draw some objects that are moving around
  }
  
  public void clearScreen() {     
      // This method is called when the user pressed a button
      toClear = true;
  }
  </code></pre>
  
  <p>After Googling around a litte, I heard about double buffering but came to the understanding that lockCanvas() and unlockCanvasAndPost() should handle this for me. What is going wrong here?</p>