원인은 SurfaceView를 그려주는
Thread에서,
try {
c = holder.lockCanvas(null);// 캔버스를 얻는다
...
실제그리는 코드.
...
}
catch{}
finally {
if (c != null) {
holder.unlockCanvasAndPost(c);
postInvalidate();
}
}
위의 실제 그리는 코드에 Draw관련 함수가아닌,
개체생성(New) 등의 복잡한 코드가 있었기 때문이었다.
명심할 부분은
c = holder.lockCanvas(null);// 캔버스를 얻는다
holder.unlockCanvasAndPost(c);
이 두 명령어 사이엔 되도록 draw계열의 함수만 넣어야한다.
댓글 없음:
댓글 쓰기