안드로이드 개발 질문/답변
(글 수 45,052)
현재 앱의 구조가 크게 ActivityA, ActivityB, ActivityC의 3가지 Activity로 구성되어 있습니다.
ActivityA에서 무언가를 누르면 ActivityB가 A위로 올라가고, B에서 무언가 고르면 ActivityC가 최상위로 올라가는 구조입니다.
ActivityA가 메인 Intent로 되어 있구요.
그런데 ActivityC에서 상당한 시간 사용을 한 뒤에(= 메모리 관리자가 B, A를 제거한 경우) 백버튼을 누르면,
C를 호출하고 pause 되었던 ActivityB로 복구되는 것이 아니라,
ActivityA가 복구되는 단계로(즉, 중간에 낀 B는 그냥 스킵하고) 떨어져서 앱이 아예 처음부터 재실행되는 상태가 됩니다.
ActivityB로 돌아오게 강제할 방법이 있나요?
아니면 꼭 A로 돌아간 뒤에 다시 강제로 B를 올리는 방법밖에 없나요?




자답을 답니다.
진짜 오랫만에 원인을 찾았는데...
사실 onPause() 에서 intent에 RESULT_CANCELED 를 반환하고 있어서 그런 것이었습니다.
이 코드는 원래 협력사에서, 이런저런 문제가 있다고 하니까 onPause에 넣으라고 알려준 코드였음...
앱이 되살릴 수 없는 요소가 있어서 home을 누르면 그냥 강제 재시작하게 되어있었는데 그게 의도하지 않았던 순간에 적용되고 있었던 것 같군요.