Chef.Yeon
Code Cook
Chef.Yeon
전체 방문자
오늘
어제
  • 분류 전체보기 (230)
    • 게임 개발 (1)
      • Unity (1)
    • Android (27)
      • Kotlin (19)
      • 우아한테크코스 5기 (4)
    • Language (11)
      • 파이썬 (3)
      • Java (7)
    • DB (2)
      • SQL (16)
    • Spring (25)
    • 코딩테스트 (56)
    • Git (1)
    • TIL (85)
    • DevOps (6)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Docker
  • 다이나믹 프로그래밍
  • elasticsearch
  • 코틀린 인 액션
  • java
  • 에라토스테네스의 체
  • Android
  • rsocket
  • spring
  • 내림차순
  • 백준
  • MariaDB
  • 안드로이드
  • SQL
  • grafana
  • 프로그래머스
  • ec2
  • 코딩테스트
  • 레포지토리
  • kibana
  • kotlin
  • 우아한테크코스
  • 코틀린
  • Wil
  • 프리코스
  • til
  • 문자열
  • 파이썬
  • enum
  • webflux

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Chef.Yeon

Code Cook

Android

[Android] Activity와 Lifecycle (생명 주기)

2022. 12. 23. 18:45
728x90

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

728x90

'Android' 카테고리의 다른 글

[Android/Kotlin] 버튼 Background 설정 시, 색상이 적용되지 않는 문제 해결 방법  (0) 2022.12.29
[안드로이드 스튜디오] Execution failed for task ':app:checkDebugAarMetadata'  (0) 2022.10.19
[안드로이드 스튜디오] Github 저장소 생성 & Android 프로젝트 연동/깃허브 토큰 로그인  (0) 2022.09.29
    'Android' 카테고리의 다른 글
    • [Android/Kotlin] 버튼 Background 설정 시, 색상이 적용되지 않는 문제 해결 방법
    • [안드로이드 스튜디오] Execution failed for task ':app:checkDebugAarMetadata'
    • [안드로이드 스튜디오] Github 저장소 생성 & Android 프로젝트 연동/깃허브 토큰 로그인
    Chef.Yeon
    Chef.Yeon
    보기 좋고 깔끔한 코드를 요리하기 위해 노력하고 있습니다.

    티스토리툴바