Chapter5 화면 구성하기
컨텍스트(context)
: 시스템을 사용하기 위한 정보(프로퍼티)와 도구(메서드)가 담겨있는 클래스.
컨텍스트 종류
· 애플리케이션 컨텍스트(applicationContext)
: 애플리케이션과 관련된 핵심 기능을 담고 있는 클래스.
▷앱 전체 중 하나의 인스턴스만 생성.
· 베이스 컨텍스트(baseContext)
: 액티비티, 서비스, 컨텐트 프로바이더, 브로드캐스트 리시버의 기반 클래스.
▷컴포넌트 개수만큼 컨텍스트도 함께 생성.
인텐트(Intent)
: 안드로이드 애플리케이션 간에 통신을 담당하는 중요한 컴포넌트.
▷개발자가 어떤 의도를 가지고 메서드를 실행할 것인지를 인텐트에 담아서 안드로이드에 전달하면
안드로이드는 해당 인텐트를 해석 및 실행.

새로 생성된 액티비티를 실행하기 위해 인텐트가 전달되는 과정

인텐트
인텐트 태그 부분이 있는 activity가
시작할 때 처음 뜨는 화면.
액티비티 사이에 값 주고받기
▷인텐트 내부에 번들(bundle)이라는 데이터 저장 공간이 있는데,
이 번들에 데이터를 담아서 주고받을 수 있음.
▷인텐트에 값을 입력할 때는 키와 값의 조합으로 번들에 직접 넣고,
꺼낼 때는 처음 입력했던 키로 꺼냄. (마치 Map과 같음)
🪄getIntExtra() 메서드
→ getIntExtra() 메서드에 입력되는 두번째 값은 키로 값을 꺼냈는데 아무런 값도 전달되지 않았을 경우
디폴트로 사용할 기본값을 설정해줘야함.(대부분 0으로 입력.)
Toast.makeText
토스트(Toast)
: 화면에 잠깐 나타났다 사라지는 메세지 출력 도구.
· 첫 번째 파라미터 : 화면을 위한 기본 도구인 컨텍스트가 필요한데
액티비티가 이미 갖고 있으므로 this라고 입력하면 됨.
· 두 번째 파라미터 : 출력될 메세지를 문자열로 전달.
· 세 번째 파라미터 : 메세지가 얼마 동안 출력될지를 결정.
(LENGTH_LONG 또는 LENGTH_SHORT)
▷메인 액티비티에서 서브 액티비티를 호출한 후 값을 돌려받고 싶을 때는
activityResult 변수의 launch() 메서드를 사용해야 함.
🪄android OS 지원
back stack 운영체제애서 관리하는 메모리 저장공간
(First-In-Last-Out)
→서브 액티비티 실행 구조
+) back stack 더 자세히
▷안드로이드 애플리케이션은 모바일 애플리케이션 특성상
하나의 화면(Acticity)만 화면에 활성화 된다.
활성화된 화면에서 작업 후 back 버튼으로 이전화면으로 돌아갈 때 저장된 화면을 띄워주는 구조가
Back stack 구조이다.
▷각각의 화면이 Activity로,
화면이 전환될 때마다 그 Activity를 BackStack 안에 저장했다가
돌아갈 때 현재 화면은 pop되고, Stack에서 Acticity를 하나씩 꺼내 이전 화면으로 전환해준다.

[출처] Android Developers
액티비티 생명 주기(Activity Life Cycle)
▷안드로이드는 앱 실행 후 다른 액티비티 화면이 전환되거나,
화면이 꺼지거나 혹은 앱이 종료될 때와 같이
상태 변화가 있을 때마다 화면에 보여지는 액티비티의 생명 주기 메서드를
호출해서 상태 변화를 알려줌.
▷onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy()

액티비티 생명 주기 메서드
생명주기 콜백
▷액티비티는 인스턴스 생성과 동시에 생성과 관련된 생명 주기 메서드가 순차적으로 호출.
▷finish() 메서드나 뒤로가기로 액티비티를 종료하면 소멸과 관련된 생명주기 메서드가 순차적으로 호출됨.

액티비티 생성 시 생명주기

액티비티 제거 시 생명 주기

새로운 액티비티 생성 시 현재 액티비티 생명 주기

새로운 액티비티가 현재 액티비티를 모두 가리지 않고 생성될 때 현재 액티비티 생성 주기
액티비티 백스택(Back Stack)
: 백스택은 액티비티 또는 화면 컴포넌트를 담는 안드로이드의 저장 공간
태스크와 프로세스
: 태스크(Task)는 애플리케이션에서 실행되는 프로세스(Process)를 관리하는 작업 단위
액티비티 태스크 관리하기 (알아두기!)

하나의 앱처럼 동일한 태스크로 묶여 백스텍에 저장
컨테이너
: 데이터를 반복적으로 표시하는 용도로 사용
▷위젯이나 다른 레이아웃에 데이터를 동적으로 표현해줄 때 컨테이너 사용.
리사이클러뷰(RecyclerView) 목록을 화면에 출력할 때 사용하는 대표적인 컨테이너.
'전공수업 > Kotlin' 카테고리의 다른 글
[Kotlin] 모바일프로그래밍 7주차 (1) | 2024.10.12 |
---|---|
[Kotlin] 모바일프로그래밍 5주차 (0) | 2024.10.12 |
[Kotlin] 모바일프로그래밍 4주차 (0) | 2024.10.12 |
[Kotlin] 모바일프로그래밍 2-3주차(2) (1) | 2024.10.12 |
[Kotlin] 모바일프로그래밍 2-3주차(1) (0) | 2024.10.12 |