ckgod.github Help

Details: 여러 Activity 간 수명 주기 변화

Activity lifecycle에 대한 일반적인 후속 질문은 다음과 같을 수 있습니다. "Activity A를 시작한 다음 Activity B를 시작하고, 마지막으로 Activity A로 순차적으로 돌아갈 때 발생하는 lifecycle 전환을 설명할 수 있습니까?" 이 시나리오는 Android 시스템이 여러 Activity 상태를 관리하는 방식에 대한 이해도를 테스트하는 데 도움이 됩니다.

Activity A와 Activity B 두 Activity 사이를 탐색할 때, 각 Activity에 대한 Android lifecycle 콜백은 특정 순서로 호출됩니다. 이 시나리오에 대한 lifecycle 전환을 단계별로 살펴보겠습니다.

Activity A 및 Activity B의 완전한 순차적 Lifecycle 흐름

  • Activity A의 초기 실행:

    • Activity A: 처음 실행될 때 onCreate()-> onStart()-> onResume() 순서로 진행됩니다. 사용자는 Activity A와 상호작용합니다.

  • Activity A에서 Activity B로 이동:

    • Activity A: onPause()가 호출되어 UI를 일시 중지하고 보이는 상태와 연결된 리소스를 해제합니다.

    • Activity B: onCreate()-> onStart()-> onResume()이 호출되어 포커스를 얻고 포그라운드 Activity가 됩니다.

    • Activity A: onStop()이 호출됩니다 (액티비티 B가 액티비티 A를 완전히 가리는 경우에만 해당).

  • Activity B에서 Activity A로 돌아가기:

    • Activity B: onPause()

    • Activity A: onRestart()-> onStart()-> onResume()이 호출되어 포커스를 되찾고 포그라운드로 돌아옵니다.

    • Activity B: onStop()-> onDestroy()

요약

두 Activity 간에 전환할 때, 포그라운드 Activity는 백그라운드로 이동하기 전에 항상 onPause() lifecycle을 거칩니다. 새로 시작되는 Activity는 onCreate()부터 시작되는 lifecycle과 함께 포커스를 가져옵니다. 이전 Activity로 돌아갈 때, onRestart() 또는 onResume()을 사용하여 일시 중지된 상태에서 다시 시작되며, 나가는 Activity는 동작에 따라 stop되거나 destroy됩니다. 이러한 lifecycle 전환을 이해하는 것은 적절한 리소스 관리와 원활한 사용자 경험을 보장합니다.

30 September 2025