Activity
안드로이드에서 앱을 실행시키면 로고가 뜨고, 앱의 첫 화면이 뜹니다.
안드로이드 스튜디오에서 애뮬레이터로 어플을 실행시킨 화면입니다.
이와 같이 activity는 다음과 같은 일을 한다고 볼 수 있습니다.
1. 화면에 UI를 표시
2. 사용자의 버튼 터치, 스크롤 등의 이벤트 처리 (상호작용)
3. 새로운 UI를 화면에 표시 (ex. 카카오톡 친구 탭에서 채팅 탭으로 넘어가면 다른 화면이 표시됨)
xml과 activity
xml에서 앱의 레이아웃을 만들고 끝나는 것이 아니라, UI를 보여주는 activity와 연결을 해주어야 합니다.
프로젝트를 생성하면 기본적으로 MainActivity.kt 파일과 activity_main.xml 파일이 생성됩니다. MainActivity 파일에 들어가면 다음과 같은 코드가 있습니다.
setContentView(R.layout.activity_main)이라는 코드가 있는데요. activity_main.xml과 MainActivity.kt 파일을 연결시켜주는 코드입니다. 기본적으로 작성이 되어있는 코드이므로 바로 앱을 실행해도 UI가 표시되는 것을 확인할 수 있습니다.
Lifecycle 생명주기
유튜브를 보다가 카톡이 와서 연락을 보고, 다시 유튜브로 돌아왔을 때 유튜브가 처음부터 실행되는 것이 아니라 마지막에 켜둔 화면으로 실행됩니다. 이처럼 사용자가 앱을 사용하고, 나가고, 앱으로 다시 돌아가면 activity의 생명주기 안에서 상태가 변합니다. activity 클래스는 activity 생성, 중단 또는 재시작, 종료 등 여러 콜백을 제공합니다.
다음은 activity 클래스가 제공하는 6개의 콜백입니다.
- onCreate()
- onStart()
- onResume()
- onPause()
- onStop()
- onDestory()
사진으로만 보면 이해하기 어려울 수 있습니다.
안드로이드 스튜디오에서 애뮬레이터를 돌려 뒤로 가기, 화면 회전 등 동작을 수행하며 어떤 콜백이 수행되는지 직접 확인해 보겠습니다.
앱 첫 실행 > 홈 버튼 > 다시 앱 켜기 > 앱 종료
다음과 같은 상황도 수행해 보겠습니다.
팝업 등에 의해 화면의 일부가 가린다면 어떨까요? onStop은 activity가 더 이상 사용자가에게 보이지 않는 경우에 수행되므로 activity 화면의 일부가 가렸을 뿐 사용자에게 보이는 상태에서는 onPause만 수행됩니다.
여러 상황에 대해 어떤 콜백이 호출을 확인해보고 알맞은 콜백을 오버라이딩하여 사용하면 좋을 것 같습니다.
활동 수명 주기에 관한 이해 | Android 개발자 | Android Developers
활동은 사용자가 전화 걸기, 사진 찍기, 이메일 보내기 또는 지도 보기와 같은 작업을 하기 위해 상호작용할 수 있는 화면을 제공하는 애플리케이션 구성요소입니다. 각 활동에는 사용자 인터페
developer.android.com
'Android' 카테고리의 다른 글
[Android/Kotlin] 버튼 Background 설정 시, 색상이 적용되지 않는 문제 해결 방법 (0) | 2022.12.29 |
---|---|
[안드로이드 스튜디오] Execution failed for task ':app:checkDebugAarMetadata' (0) | 2022.10.19 |
[안드로이드 스튜디오] Github 저장소 생성 & Android 프로젝트 연동/깃허브 토큰 로그인 (0) | 2022.09.29 |