안녕하세요? 질문 좀 드리겠습니다.
게임 도중에 홈키를 눌러서 바탕화면으로 나왔다가 재실행을 하면
게임이 원래 상태로 되돌아가지 않고, 처음부터 다시 실행이 됩니다.
로고화면부터 나오는데요.
이 상태로 정상이면 아무 문제가 없는데, SD카드에서 데이터조차 읽어오지 못하고 게임이 비정상이 되요.
희안한 부분은 지금부터인데요.
재부팅을 해서 실행하면 아무 문제가 없다는 겁니다. 완전히 정상으로 돌아와요.
설치 직후에만 문제가 됩니다.
killBackgroundProcesses, restartPackage 등으로 게임 실행될때 기존에 남아있던 프로세스를
죽여버리게 하는 것도 해봤는데 이것도 잘 안되더라고요.
이런 경우 어떤 방법을 써야 하나요? 한수 가르침 부탁 드립니다.
이게 지금 보니까요.
바탕화면에 있는 아이콘으로 실행할때만 문제가 되네요.
앱 목록에 있는 실제 아이콘을 직접 실행하면 아무 문제가 없어요.
설치 직후에 "열기" 버튼으로 실행될때도 바탕 화면 아이콘을
실행할때처럼 똑같이 문제가 되고요.
거참 희안하네요.
안드로이드 OS가 죽이는겁니다. 메모리 관리나 시피유 리소스 측면에서 죽이고 싶을때 맘대로 죽입니다.
보통은 생명주기에 관련되서 리소스 상태를 보고 액티비티를 릴리즈시켰다가 다시 실행시키는 현상인데요
홈키 -> 멀티태스킹 선택 -> 복귀
홈키 -> 실행 아이콘 클릭 -> 복귀
전원키 -> 멀티태스킹 선택 -> 복귀
전원키 -> 실행 아이콘 클릭 -> 복귀
생명주기 상 위의 네가지 관점에서 테스트를 진행해야 합니다.
단순히 onPuase 될때랑 onDestroy될때랑 다르지요.
게다가 OS 버전별로, 스마트폰 메모리 크기별로 스마트폰 종류별로 다르게 일어납니다.
당연하지만 메모리가 넉넉하고 시피유가 좋은 폰에서는 잘 안일어나지요.
결론부터 말씀드리자면 리셋되는게 싫으시면 리셋되었을때 복귀하도록 만들어야합니다.
리셋되는건 죽어도 못막으니까요.
참고로 말씀드리자면 안드로이드 OS 특성상 어플을 완벽히 종료하는 것은 힘듭니다.
OS가 태스크에 남겨놓고자 하면 막을 길이 요원하지요.
그럴때는 몇가지 방법이 있습니다. 검색하시면 나올껍니다.
안드로이드 OS 사용하면 할수록 좀 ㅄ 같은 측면이 많습니다.




앱을 APK 로 설치하고 설치 화면에서 바로 실행 버튼을 누른것과,
아이콘으로 실행하는 것은 따로 앱이 뜰 수 있는데요.
제가 만들었던 앱도 APK 로 설치하고 나서 화면에서 바로 실행버튼으로 눌러서 실행하고 나서, 홈 버튼 누르고 아이콘으로 실행하면 새로 실행되는 것으로 보이는 문제가 있었습니다.
이런식으로 테스크가 분리되는 문제(?)가 있으면 onNewIntent 에 들어오는지 확인하거나, Activity 의 task 옵션을 조정하거나,
여러 가지로 검토가 필요한 내용이긴 한 것 같습니다.
그런데 sd카드에 있는 데이터를 불러오지 못한다거나 하는 문제는 없긴 했습니다^^;