안드로이드 앱 개발 공부/안드로이드 기본(노션 이동)

[Android] Context

플래시🦥 2023. 3. 7.
반응형
  • 응용 프로그램 환경에 대한 전역 정보에 대한 인터페이스.
  • 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
반응형

댓글