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가 사용되는 경우는 대표적으로 다음과 같다.
- 리소스 값을 불러올 때
- 서비스를 사용할 때
- 브로드캐스트 메시지를 전송할 때
참조