간단한 게임 어플을 만들고 있습니다.

 

onPause에 걸리면 서피스뷰 스레드를 공회전 시켜뒀구요.

surfaceDestroyed에서는 서피스뷰 스레드를 멈추게 해뒀습니다.

onDestroy 시 finish(); 시켰구요.

 

가만히 폰을 둬서 화면이 꺼지거나

핸드폰 옆부분에 전원 버튼을 눌러서 화면이 꺼지면

 

onPause - onStop 까지 가고 대기합니다.

다시 화면을 켜면

onRestart - onStart - onResume 타면서

하던 게임 그대로 이어서 가능하구요.

 

근데..

홈버튼을 누르게 되면

onPause - surfaceDestroyed - onStop - onDestroy

까지 내달립니다.

 

그냥 홈버튼 누르면 꺼져버리라지 하고  넘어갔는데

 

인앱빌링을 구현하다보니.

결제 상품을 선택 후 스토어 화면으로 이동시 마찬가지로

onPause - surfaceDestroyed - onStop - onDestroy

까지 달려버립니다.

 

서피스뷰가 꺼져버리는건.. 결제 끝나고 다시 켜면 되는데

onDestroy까지 달려버리면 결제 정보를

주고 받을 수가 없지 않나요?

 

혹시나 해서.. 결제 상품 선택 시에는 onStop안에 super.onStop (); 를 타지않게 해뒀더니

android.app.SuperNotCalledException 를 내뱉네요.

 

어떻게 꺼지지 않고 대기하도록 만들수 있을까요..