Context – это базовый класс, который реализуется самой системой Android. Он предоставляет доступ к базовым функциям приложения. Такие основные компоненты как Activity, Application и другие наследуются от класса Context.
Используя контекст, можно:
- получить текущее состояние (state) приложения,
- получить доступ к информации, хранящейся в Activity или Application,
- получить доступ к ресурсам, базам данных или настройкам приложения.
Для получения доступа к контексту используются методы: getApplicationContext(), getContext(), getBaseContext() или this.
Для доступа к различным ресурсам и объектам сам контекст использует методы: getAssets(), getResources(), getPackageManager(), getString(), getSharedPrefsFile().
Можно выделить два основных типа контекста: ApplicationContext и ActivityContext.
ApplicationContext – экземпляр, реализующий паттерн singleton. Контекст, привязанный к жизненному циклу приложения. Следует использовать там, где нужен контекст, жизненный цикл которого отделен от текущего.
ActivityContext – контекст, который доступен в активити и привязан к его жизненному циклу. Используется при передаче контекста в рамках Activity или когда нужен контекст, жизненный цикл которого привязан к текущему контексту.