2011년 3월 17일 목요일

SurfaceView 재사용

SurfaceView 에 아래 3가지 Callback 함수를 등록한다.
surfaceCreated
surfaceChanged
surfaceDestroyed

일반적으로 surfaceCreated 가 호출되면 holder 를 이용해서 작업을 시작하고 surfacedDestroyed 가 호출되면 holder 작업을 멈추게 된다.

레이아웃 xml 에 SurfaceView 를 지정한 경우 기본적으로 activity 가 시작되는 시점 또는 onPause 후 onResume 시점에 surfaceCreate 와 surfaceChanged 가 발생한다.
그리고 onPause 되는 시점에 surfacedDestroyed 가 발생한다.

만약 Activity 를 나갔다 들어오지 않는 상태에서 SurfaceView 를 다시 사용해야 한다면 surfaceView 의 setVisibility 함수를 이용하는 방법이 있다.

SurfaceView 를 사용하지 않는 시점에 SurfaceView 의 visibility 를 View.GONE 또는 View.INVISIBLE 로 지정하면 surfaceDestroyed 가 호출된다.

그리고 SurfaceView 를 다시 사용하는 시점에 SurfaceView 의 visibility 를 View.VISIBLE 로 지정하면 surfacedCreated 와 surfaceChaned 함수가 호출된다.

댓글 없음:

댓글 쓰기