안드로이드 인텐트이동, 액티비티 생명주기 질문입니다!

조회수 2026회

A, B, C, D, E 라는 액티비티를 순서대로 실행한후 E에서 B로 인텐트 이동을 하며 "FLAG_ACTIVITY_CLEAR_TOP" 을 해주었습니다. 그럴경우 남아있는 액티비티는 A, B 일텐데 이때 B에 실행되는 메소드가 onStop() 상태에서 onRestart() 후 onStart()로 변경되는것이 맞나요?

그렇다면 다음 C액티비티를 실행해줬을때 C 액티비티의 onStart()가 아니라 onCreate() 가 실행되는게 맞는지 궁금합니다!

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • FLAG_ACTIVITY_CLEAR_TOP 의 속성을 사용해서 A > B > C > D > E 의 스택에서 B를 호출한다면 E, D, C의 순서로 제거되고 B 는 onCreate() 부터 다시 시작 하게 됩니다.

    말씀하신 내용처럼, onRestart() > onStart() > onResume() 의 순서대로 실행하고 싶으시면, 아래 코드와 같이 FLAG_ACTIVITY_SINGLE_TOP 의 속성도 함께 사용해 주어야 합니다.

    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
    
    • (•́ ✖ •̀)
      알 수 없는 사용자
    • 좋은 답변 감사합니다! 2016.5.10 20:24

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)