Context

현재 사용되고 있는 애플리케이션(또는 액티비티)에 대한 포괄적인 정보를 지니고 있는 객체이다. Context가 없으면 액티비티를 시작할 수도, 브로드캐스트를 발생시킬 수도, 서비스를 시작할 수도 없다. 리소스에 접근할 때도 Context를 통해서만 가능하다. Context는 여러 컴포넌트의 상위 클래스이다.
Context는 추상 클래스인데 메서드 구현이 거의 없고 상수 정의와 추상 메서드로 이루어진다. Context를 직접 상속한 것은 ContextWrapper이고 ContextWrapper를 상속한 것은 Activity, Service, Application이다. (BroadCastReceiver와 ContentProvider는 Context를 상속한 것이 아님)
Context 특징
- Application의 현재 상태를 나타낸다.
- Activity와 Application의 정보를 얻기 위해 사용할 수 있다.
- Resource, Database, SharedPreference 등에 접근하기 위해 사용할 수 있다.
- Activity와 Application 클래스는 Context 클래스를 확장한 클래스다.
- Context를 통해 안드로이드 시스템이 애플리케이션이나 컴포넌트 등을 관리한다.
Context 종류
1. Application Context
Application LifeCycle을 따르며 애플리케이션이 실행되어 종료될 때까지 동일한 객체를 참조한다.
2. Activity Context
Activity LifeCycle을 따르며 Activity가 onDestroy() 될 때 context가 사라지게 된다.