안드로이드 개발 질문/답변
(글 수 45,052)
Activity01 -> Activity02 -> Activity03 -> Activity04
이런식으로 차근차근 이동할 때는 Flag 에 FLAG_ACTIVITY_SINGLE_TOP 속성만 주어서 시작시켰습니다.
그런데 제가 하고자 하는 것은
Activity01 -> Activity02 -> Activity03 -> Activity04
Activity03 에서 Activity04 로 이동했을 때 Activity04 만 남아있고, 01, 02, 03 TASK 들을 없애고 싶습니다.
Back Key 를 눌러도 03 으로 이동되지 않고, 그냥 앱이 종료되는 것 처럼 보이게 말이죠...
그래서 검색을 한 결과 FLAG_ACTIVITY_CLEAR_TOP, FLAG_ACTIVITY_SINGLE_TOP 속성을 주어 04 를 실행시켰는데..
Back key 를 누르면 03으로 이동되어버립니다.
결론. Activity04 만 남아있게끔 하려면 어떻게 하면 될까요..




FLAG_ACTIVITY_SINGLE_TOP 은 A->B->B 로 진행될 경우가 A->B(재사용) 형태로 가는 것이구요.
FLAG_ACTIVITY_CLEAR_TOP 은 A->B->C-> A 로 진행될 경우에 A 만 남게 됩니다.
물론 안드로종 님처럼 새로운 Activity를 계속 생성하는 경우에는 하나도 해당이 안되구요.
만약 Activity 이동 할 때마다 값을 넘겨주거나 하는 부분이 없다면 finish() 시켜 주고 넘어가야 할 것 같습니다.
질문자님의 의도가
Activity01 -> Activity02 -> Activity03 까지는 재대로 되는데 -> Activity 04 가면 모두 종료 되는 거라면
Activity03을 재활용 해서 해보시는 건 어떨까요? 재활용 한다면 FLAG_ACTIVITY_CLEAR_TOP 하나면 설정하시면 나머지는 종료 될 겁니다.
Activity01 -> Activity02 -> Activity03 (정상작동) -> Activity03 (혼자남음) xml 2개 만든 후 intent putExtra로 값을 넘겨서 구분해서 사용 하시면 될 듯 한데요.!!