surfaceView를 사용중입니다. 쓰레드 하나 돌려서 run메소드에서 canvas로 draw하는데 이전에 찍은 화면이 그대로 남아있네요..

이전 프로젝트에서는 문제없이 사용되었는데 소스도 대부분 같고..뭐가 문제 인지 모르겠네요..

간단한 run메소드만 올려보겠습니다.


@Override

public void run() {

    long timer;


    int count = 0;

    

    while (onProgram)

    {

    try

    {

    Update();

   

    mCanvas = mSurfaceHolder.lockCanvas(null);

    SetScale();

   

    synchronized ( mSurfaceHolder )

    {

    timer = System.currentTimeMillis();    


    if (b != null) {

    mCanvas.drawBitmap(b, null, new Rect(10 + count, 10, 100 + count, 100), null);

    count++;

}

   

    while ( System.currentTimeMillis() - timer < FPS );

    }

    }

    finally

    {

    if ( mCanvas != null )

    mSurfaceHolder.unlockCanvasAndPost(mCanvas);

    }

    }

}



기본 소스라 보시면 대충 이해 되실듯 합니다. 
다른 프로젝트에서도 draw하는 run메소드는 같습니다. 근데 다른프로젝트는 갱신이 잘되는데 현재 프로젝트는 이전 draw한게 계속 남아있네요. 무엇 때문인지 모르겠네요.