모바일 개발 · 중급
Activity의 onPause()와 onStop() 메서드는 어떤 차이가 있으며, 각각 어떤 상황에서 호출되고 어떤 작업을 수행하는 것이 적절한가요?
힌트 · onPause는 액티비티가 부분적으로 가려질 때, onStop은 완전히 가려질 때 호출됩니다. 리소스 해제 시점을 구분하여 설명하세요.
onPauseonStop가시성생명주기리소스 해제
모범답안
"onPause()와 onStop()은 액티비티 생명주기에서 액티비티의 가시성이 변화할 때 호출되는 메서드입니다.
onPause()는 액티비티가 부분적으로 가려질 때, 예를 들어 팝업 창이 뜨거나 다른 액티비티가 투명하게 겹쳐질 때 호출됩니다. 이 메서드에서는 CPU 자원을 많이 사용하는 작업은 피하고, 일시 정지해야 하는 작업 (예: 센서, 애니메이션)을 멈추는 것이 좋습니다. 짧은 시간 안에 액티비티가 다시 활성화될 가능성이 있기 때문입니다.
onStop()은 액티비티가 완전히 가려져 사용자에게 보이지 않게 될 때 호출됩니다. 이 메서드에서는 onPause()에서 처리하지 못한 리소스 해제 작업을 수행할 수 있습니다. 예를 들어, 네트워크 연결을 끊거나, 데이터를 저장하는 등의 작업을 할 수 있습니다. 시스템은 메모리가 부족할 경우 onStop() 상태의 액티비티를 종료시킬 수 있습니다."
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 Android / Kotlin 면접 질문
- AndroidManifest.xml 파일의 주요 역할은 무엇이며, 이 파일에 반드시 포함되어야 하는 정보들은 어떤 것들이 있는지 설명해주세요.
- 안드로이드 UI 구성의 기본 요소인 View와 ViewGroup의 차이점을 설명하고, 각각의 예시를 들어주세요.
- Kotlin의 Null Safety 기능은 무엇이며, 이를 위해 사용되는 '?' (nullable type)와 '!!' (non-null assertion operator)의 역할과 사용 시 주의점에 대해 설명해주세요.
- Fragment의 onCreateView()와 onViewCreated() 메서드의 호출 시점과 역할의 차이점을 설명하고, 각각 어떤 종류의 작업을 수행하는 것이 권장되는지 예시와 함께 설명해 주세요.
- Android 아키텍처 컴포넌트 중 ViewModel의 역할과 장점은 무엇이며, Activity 또는 Fragment의 생명주기와 어떻게 독립적으로 데이터를 유지할 수 있는지 설명해주세요.
- Kotlin Flow 기반의 StateFlow와 Android 아키텍처 컴포넌트의 LiveData는 각각 어떤 특징을 가지고 있으며, UI 상태 관리에 있어 어떤 상황에서 어떤 것을 사용하는 것이 더 효과적인지 비교하여 설명해주세요.