Draw From Old Canvas - Android

Estoy creando una aplicación que necesita poder dibujar nuevos gráficos sobre el último conjunto.

Este es mi método onDraw () actual:

protected void onDraw(Canvas canvas) {

    canvas.drawColor(Color.WHITE);

    if(points.size() > 0) {
        //do some stuff here - this is all working ok
        canvas.drawLine(p1.x, p1.y, p2.x, p2.y, linePaint);
    }   
}

Básicamente, necesito dibujar los nuevos gráficos como una capa encima de la última, así que lo que estoy buscando es una forma de llevar la imagen del último lienzo a la actual.

He intentado resolverlo yo mismo usando el método canvas.setBitmap () pero funciona de manera muy divertida.

Cualquier ayuda apreciada :)

P.S si es necesario, la clase se extiendeSurfaceView e implementaSurfaceHolder.Callback

Editar: Esto es lo que he intentado en el método onDraw () pero solo fuerza el cierre

if(bitmap != null) {
        canvas.drawBitmap(bitmap, 0, 0, paint);
        canvas.setBitmap(bitmap);  
    }

Respuestas a la pregunta(2)

Su respuesta a la pregunta