Tech Log

[Android] Context 본문

Android/etc

[Android] Context

yuhee kim 2023. 3. 28. 08:00

1. Context란?

Context라는 단어 자체를 번역하면 문맥이다.

문맥은 논리적인 흐름을 말한다.

Context는 애플리케이션의 논리적인 흐름이다. 

 

애플리케이션의 현재 상태를 나타내며,

애플리케이션 환경에 대한 전반적인 정보를 담고 있는 클래스다.

 

  • 리소스에 접근할 수 있도록 도와준다.
  • 브로드캐스트 리시버, Intent와 같이 메시지를 주고받으며 다른 안드로이드 컴포넌트와 상호작용할 때 필요하다.

Context를 잘못사용하면 메모리 누수를 유발하므로 Context를 제대로 이해하고 사용해야 한다.

 

2. Context의 종류

Context는 주로 두 가지로 나뉜다.

Activity Context, Application Context로 나뉜다.

Activity Context

Activity Context는 Activity의 생명주기와 관련되어 있다.

Activity의 생명주기와 관련된 object를 생성할 때 필요할 수 있다.

Activity 내에서만 사용이 가능하다.

Activity가 소멸하면 해당 Activity Context도 소멸한다.

 

Activity Context가 사용되는 경우는 대표적으로 다음과 같다.

  • 리소스 값을 불러올 때
  • Toast 메시지를 띄울 때
  • Activity를 시작할 때
  • Layout Inflation
  • 서비스를 시작할 때
  • 브로드캐스트 메시지를 전송할 때

 

Application Context

애플리케이션의 생명주기와 관련되어 있다.

애플리케이션이 실행되어 종료될 때까지 존재한다.

Activity scope를 벗어난 작업일 때 사용한다.

주로 싱글톤으로 구현할 때 사용이 된다.

 

Application Context가 사용되는 경우는 대표적으로 다음과 같다.

  • 리소스 값을 불러올 때
  • 서비스를 사용할 때
  • 브로드캐스트 메시지를 전송할 때

 

 

 

 

참조

'Android > etc' 카테고리의 다른 글

[Android] SharedPreferences와 싱글톤 패턴  (0) 2023.03.27
[Android] ViewModel 개념  (0) 2022.08.23
[Android] Fragment 생명 주기  (0) 2022.06.25
[Android] Jetpack  (0) 2022.06.21
[Android] SharedPreferences  (0) 2022.06.15
Comments