안드로이드 개발 질문/답변
(글 수 45,052)
- 안드로이드 상용 어플을 개발중에 큰 이슈가 발생했습니다.
아래처럼 시나리오 되는 경우 ~ 이슈가 발생하게 됩니다.
1. 어플리케이션 상속받아서 재정의
2. 어플 시작 Intro 액티비티 -> 맵 액티비티(구글맵 아님) -> Home Key 누루고 30분을 그대로 나둡니다.
- 어플이 시작하면 Intro 액티비티 호출, Intro 액티비티에서 재정의한 어플리케이션에 객체 선언
GPS, 센서 장치 활성화 및 사용
그리고 맵 액티비티 호출하면 바로 Intro 액티비티 종료
- 맵 액티비티에서 Home Key 누름, 맵 액티비티 onPause() 들어옴
3. 위의 2번 Home Key 누른 상태에서 30분이상 지속되면 해당 어플 메모리 회수됨 ......................;
- GPS, 센서 비활성화 됨 자동으로 ~
:: 추측, 어플의 껍데기만 있는 거 같음... 정확히는 모르겠습니다.
4. 3번 현상이 발생하고 다시 어플 시작하면
맵 액티비티 onResume 들어옴
하지만 재정의한 어플리케이션 데이터 없음............;;
onResume() 메소드에서 사용되는 데이터는 대부분 데이터 존재하지 않음 그러므로 대량의 널 포인터 발생
결론 위의 4번 처럼 발생하는 현상을 방지하려면 어떻게 처리하면 될까요?
::: 제 나름대로 생각한 방법은 매니페스트 맵 액티비티에 always retain task state 속성값을 True 을 줬습니다.
하지만 효과가 없습니다. 혹시 다른 방법이 없나요? 아니면 모든 데이터들을 다 Save 하고 무조건 onResume() 메소드에 기존의 데이터를 Load 해야 하나요?
안드로이드 개발에 대해서 아시는 분들을 알려주세요 ~