안드로이드 개발 질문/답변
(글 수 45,052)
현재 Opengl로 게임을 만들고 있습니다.
폰이 켜있는 상태는 문제가없는데 게임중 전원 버튼으로 껐다 켰을때 문제가 생깁니다.
디버깅 및 로그등을 찍어보니 onDestroy() 함수가 호출되더군요.
onDestroy() 함수가 호출되는게 원래 그런건지 이곳저곳 찾아봐도 관련된 내용은 찾기가 힘들더군요.
현재 테스트하는 폰은 넥서스s입니다.
전원버튼이라고 해서 잘못들으실 수 도 있는데 완전 종료가 아닌 껐다가 바로 켰을때 입니다.
1. 처음 버튼으로 화면을 껐을때
onPause() -> onStop() -> onDestroy()
2. 바로 전원버튼으로 화면을 켰을때 ( 장금화면 출력됨 )
onCreate() -> onStart() -> onResume()
3, 패턴 입력후 게임화면으로 왔을때
onPause() -> onStop() -> onDestroy() -> onCreate() -> onStart() -> onResume()
이런식으로 호출이 됩니다.
원래 이런식으로 호출되는게 맞는건가요? 다른분들은 어떻게 처리하셨는지 궁금합니다.
만약 이게 맞는거라면 onCreate() 가 2번이나 호출되어 여러가지 문제가 생기고 있습니다.
데이터들은 전역으로 관리해서 초기화 되거나 하진 않습니다. 하지만 메모리 누수가 생기더군요...ㅠ
onDestroy()까지 호출되리라고는 생각도 못했습니다.
혹시 이부분에서 추가적으로 처리해주어야 하는 부분이 있는지 도와주세요 ..,..ㅠㅠ




onCreate - onStart - onResume - 돌아가는중 - onPause - onStop - onDestroy
해당 액티비티가 완전히 finish 되면 onDestroy가 호출되는것으로 알고있는데..
스택에서 지우거나, finish를 하지 않고 액티비티만 넘기면 create는 한번만 호출되지 않나요?
그래서 보통 resume에 코드를 적는데...
코드를 봐야지 알것같아요 ㅠ 저도 허졉이지만..