반응형
- 응용 프로그램 환경에 대한 전역 정보에 대한 인터페이스.
- Android 시스템에서 구현을 제공하는 추상클래스.
- Context가 없으면 액티비티를 시작할 수도, 브로드캐스트를 발생시킬 수도, 서비스를 시작할 수도 없다. 리소스에 접근할 때도 Context를 통해서만 가능하다. Context는 여러 컴포넌트의 상위 클래스이다.
- context 직업 상속한 것 : ContextWrapper, MockContext
쉽게 말하면
- 애플리케이션의 현재 상태를 갖고 있다.
- 시스템이 관리하고 있는 액티비티, 어플리케이션의 정보를 얻기 위해 사용한다.
- 안드로이드 시스템 서비스에서 제공하는 api(리소스, DB, Shared Preferences 등)에 접근하기 위해 사용한다. 예> getResources()
- Activity, Application 클래스는 Context 클래스를 상속받은 클래스
- Application Context와 Activity Context로 나눠짐.
Application Context
- Activity에서 **applicationContext**라는 프로퍼티를 통해 얻을 수 있는 (코틀린 기준, 자바의 경우 **getApplicationContext()**라는 메서드를 통해 얻을 수 있음) 싱글톤 인스턴스
- 이 Context 는 애플리케이션 라이프사이클과 묶여있어, 현재 Context가 종료되고 나서도 Context 가 필요한 작업이나, 액티비티 범위를 벗어난 곳에 Context가 필요한 작업에 적합하다.
- 오랫동안 지속되거나 애플리케이션 전역에서 사용 ⇒ Application Context
Activity Context
- 액티비티 안에서만 사용 가능하다.
- 특정 Activity 의 라이프 사이클에 종속되어 있다.
- Activity 스코프 내에서 사용될 때 넘겨주거나, Activity와 라이프사이클이 같은 객체를 생성할 때 넘겨준다. 즉, Activity 가 소멸되면 해당 Context 도 같이 소멸된다.
728x90
반응형
'안드로이드 앱 개발 공부 > 안드로이드 기본(노션 이동)' 카테고리의 다른 글
[Android] LayoutInflater 란? (0) | 2023.03.07 |
---|---|
[Android] Rx (RxJava, RxAndroid,...)란? (0) | 2023.03.07 |
[Android] Dialog, Toast, Snackbar (0) | 2023.03.06 |
[Android] ANR (0) | 2023.03.06 |
[Android] Main Thread(UI Thread ) 와 Worker Thread (0) | 2023.03.06 |
댓글