Что такое "контекст" на Android?

в программировании Android, что именно является Context класс и для чего он используется?

Я читал об этом на сайте разработчика, но я не могу это четко понимать.

30 ответов


проще говоря:

как следует из названия, это контекст текущего состояния приложения / объекта. Он позволяет вновь созданным объектам понимать, что происходит. Обычно вы вызываете его, чтобы получить информацию о другой части вашей программы (активность и пакет/приложение).

вы можете получить контекст, вызывая getApplicationContext(), getContext(), getBaseContext() или this (когда в классе, который простирается от Context, как применение, деятельность, обслуживание и IntentService классы).

типичное использование контекста:

  • создание новых объектов: Создание новых представлений, адаптеров, прослушивателей:

    TextView tv = new TextView(getContext());
    ListAdapter adapter = new SimpleCursorAdapter(getApplicationContext(), ...);
    
  • доступ к стандартным общим ресурсам: Услуги LAYOUT_INFLATER_SERVICE, SharedPreferences:

    context.getSystemService(LAYOUT_INFLATER_SERVICE)
    getApplicationContext().getSharedPreferences(*name*, *mode*);
    
  • неявный доступ к компонентам: Что касается контент-провайдеров, трансляций, намерение!--9-->

    getApplicationContext().getContentResolver().query(uri, ...);
    

определение контекста ::

  • контекст представляет данные среды
  • он обеспечивает доступ к таким вещам, как базы данных

более простые термины::

  • рассмотрим Person-X является генеральным директором начинающей компании программного обеспечения.

  • в компании присутствует ведущий архитектор, этот ведущий архитектор делает всю работу в компании которая включает такие как база данных, UI так далее.

  • теперь генеральный директор нанимает нового разработчика.

  • это архитектор, который говорит ответственность вновь нанятых человек, основанный на навыках нового человека, что ли он будет работа над базой данных или UI и т. д.

более простые термины::

  • это как доступ активности android к ресурсу приложения.

  • это похоже на то, когда вы посетите отель, вы хотите завтрак, обед & ужин в подходящее время, верно?

  • есть много других вещей, которые вам нравятся во время пребывания. Как вы получили эти вещи?

  • вы попросите человека обслуживания номеров принести эти вещи для вас.

  • вот номер человека в контексте вы одиночная деятельность и отель, чтобы быть вашим приложением, наконец, завтрак, обед & ужин быть ресурсами.


вещи, которые включают контекст:

  1. загрузки ресурса.
  2. запуск нового вида деятельности.
  3. создание представлений.
  4. получение системы обслуживания.

контекст является базовым классом для активность, сервис, приложение .... и т. д.

другой способ описать это: рассмотрите контекст как удаленный от телевизора и канала в телевизоре-это ресурсы, услуги, использование намерений и т. д. - - - Здесь удаленный действует как доступ, чтобы получить доступ ко всем различным ресурсам на переднем плане.

  • таким образом, Remote имеет доступ к каналам, таким как ресурсы, услуги, использование намерений и т. д....
  • дополнительно ..... У кого есть доступ к удаленным, естественно, имеет доступ ко всем вещи, такие как ресурсы, сервисы, с помощью намерения и т. д.

разные методы, с помощью которых вы можете получить контекст

  • getApplicationContext()
  • getContext()
  • getBaseContext()
  • или this (когда в классе activity)

пример:

TextView TV=new TextView(this);

this -> относится к контексту текущая деятельность.


источник


тема контекста в Android кажется запутанной для многих. Люди просто знают, что контекст необходим довольно часто, чтобы делать основные вещи в Android. Люди иногда паникуют, потому что они пытаются выполнить какую-то операцию, которая требует контекста, и они не знают, как "получить" правильный контекст. Я попытаюсь прояснить идею контекста в Android. Полное рассмотрение этого вопроса выходит за рамки этого поста, но я постараюсь дать общий обзор, чтобы у вас было представление о том, что такое контекст и как его использовать. Чтобы понять, что такое контекст, давайте посмотрим на исходный код:

https://github.com/android/platform_frameworks_base/blob/master/core/java/android/content/Context.java

что такое контекст?

Ну, сама документация дает довольно простое объяснение: класс контекста является " интерфейсом для глобальная информация о среде применения".

сам класс контекста объявляется как абстрактный класс, реализация которого обеспечивается ОС Android. В документации далее предусматривается, что контекст "...обеспечивает доступ к ресурсам и классам конкретных приложений, а также к вызовам для операций на уровне приложений, таких как запуск мероприятий, вещание и получение намерений и т. д.".

теперь вы можете очень хорошо понять, почему имя является контекстом. Потому что так оно и есть. Контекст предоставляет ссылку или крючок, если хотите, для действия, службы или любого другого компонента, тем самым связывая его с системой, обеспечивая доступ к глобальной среде приложений. Другими словами: контекст дает ответ на вопрос компонентов "где, черт возьми, я по отношению к приложению в целом и как я могу получить доступ/общаться с остальной частью приложения?"Если все это кажется немного запутанным, быстрый взгляд на методы, предоставляемые контексте класс дает некоторые дополнительные подсказки о его истинной природе.

вот случайная выборка этих методов:

  1. getAssets()
  2. getResources()
  3. getPackageManager()
  4. getString()
  5. getSharedPrefsFile()

что общего у всех этих методов? Все они позволяют любому, кто имеет доступ к контексту, иметь доступ к ресурсам всего приложения.

контекст, другими словами, крючки компонент, который имеет ссылку на него для остальной среды приложения. Активы (например, папка "/assets " в вашем проекте) доступны в приложении при условии, что действие, служба или что-либо еще знает, как получить доступ к этим ресурсам. То же самое касается getResources(), которая позволяет делать такие вещи, как getResources().getColor() который зацепит вас в colors.xml resource (неважно, что aapt обеспечивает доступ к ресурсам через java-код, это отдельная проблема).

результат это Context это то, что позволяет получить доступ к системным ресурсам и его, что подключает компоненты в "большее приложение". Давайте рассмотрим подклассы Context классы, которые обеспечивают реализацию абстрактного Context класса. Наиболее очевидным классом является Activity класса. Activity наследует от ContextThemeWrapper, который наследует от ContextWrapper, который наследует от . Эти классы полезны для изучения, чтобы понять вещи на более глубоком уровне, но на данный момент достаточно знай это ContextThemeWrapper и ContextWrapper в значительной степени то,что они звучат. Они реализуют абстрактные элементы Context сам класс путем "обертывания" контекста (фактического контекста) и делегирования этих функций этому контексту. Пример полезен - в ContextWrapper класс, абстрактный метод getAssets С Context класс реализован следующим образом:

@Override
    public AssetManager getAssets() {
        return mBase.getAssets();
    }

mBase - это просто поле, заданное конструктором в определенном контексте. Таким образом, контекст обернут и ContextWrapper делегирует свою реализацию метода getAssets в этот контекст. Давайте вернемся к изучению Activity класс, который в конечном счете наследуется от Context чтобы увидеть, как это все работает.

вы, вероятно, знаете, что такое активность, но для обзора - это в основном " одна вещь, которую пользователь может сделать. Он заботится о предоставлении окна, в котором разместить пользовательский интерфейс, с которым пользователь взаимодействует". Разработчики, знакомые с другими API и даже не разработчики могут думать об этом vernacularly в качестве "экрана.- Технически это неточно, но для наших целей это не имеет значения. Так как Activity и Context взаимодействовать и что именно происходит в их отношениях наследования?

опять же, полезно посмотреть на конкретные примеры. Мы все знаем, как начать деятельность. Если у вас есть "контекст", из которого вы начинаете действие, вы просто вызываете startActivity(intent), где намерение описывает контекст, из которого вы начинаете действие и деятельность, которую вы хотели бы начать. Это знакомый startActivity(this, SomeOtherActivity.class).

и что такое this? this это ваша деятельность, потому что Activity класс наследует от Context. Полный совок выглядит так: Когда вы звоните startActivity, в конечном счете Activity класс выполняет что-то вроде этого:

Instrumentation.ActivityResult ar =
                mInstrumentation.execStartActivity(
                    this, mMainThread.getApplicationThread(), mToken, this,
                    intent, requestCode);

таким образом, он использует execStartActivity С Instrumentation класс (на самом деле из внутреннего класса в Instrumentation под названием ActivityResult).

на данный момент, мы начинаю заглядывать внутрь системы.

здесь OS фактически обрабатывает все. Итак, как именно инструментарий начинает работу? Ну, парам this на execStartActivity метод выше-это ваша деятельность, то есть контекст, и execStartActivity использует этот контекст.

обзор 30,000 таков: класс Instrumentation отслеживает список действий, которые он отслеживает, чтобы выполнить свою работу. Этот список используется для координации все действия и убедитесь, что все работает гладко в управлении потоком деятельности.

есть некоторые операции, которые я не полностью изучил, какие проблемы с координацией потока и процесса. В конечном счете,ActivityResult использует собственную операцию -ActivityManagerNative.getDefault().startActivity() использует Context что вы прошли, когда вы позвонили startActivity. Контекст, который вы передали, используется для помощи в "разрешении намерений", если это необходимо. Разрешение намерений-это процесс, с помощью которого система может определить цель намерения, если она не указана. (Проверьте здесь для более подробной информации).

и для того, чтобы Android сделать это, ему нужен доступ к информации, которая поставляется Context. В частности, система должна получить доступ к ContentResolver таким образом, он может "определить тип MIME данных намерения". Это все о том, как startActivity использование контекста было немного сложным, и я сам не полностью понимаю внутренние органы. Моя главная мысль заключалась в том, чтобы проиллюстрировать, как для выполнения многих операций, необходимых для приложения, необходимо получить доступ к ресурсам всего приложения. Context это то, что обеспечивает доступ к этим ресурсам. Более простым примером могут быть представления. Мы все знаем, что вы создаете пользовательский вид, расширяя RelativeLayout или какой-то другой View class, вы должны предоставить конструктор, который принимает Context в качестве аргумента. Когда вы создаете свой пользовательский вид, вы передаете его в контексте. Почему? Потому что представление должно иметь доступ к темы, ресурсы и другие сведения о конфигурации представления. Конфигурация View - отличный пример. Каждый контекст имеет различные параметры (поля Contextреализации), которые устанавливаются самой ОС для таких вещей, как размер или плотность дисплея. Легко понять, почему эта информация важна для настройки представлений и т. д.

последнее слово: По какой-то причине люди, новые для Android (и даже не такие новые), похоже, полностью забывают о объектно-ориентированное программирование, когда дело доходит до Android. По какой-то причине люди пытаются склонить свою разработку Android к заранее задуманным парадигмам или изученному поведению.

Android имеет свою собственную парадигму и определенный шаблон, который на самом деле довольно последователен, если отпустить ваши заранее задуманные понятия и просто прочитать документацию и руководство dev. Моя реальная точка зрения, однако, в то время как "получение правильного контекста" иногда может быть сложным, люди неоправданно паникуют, потому что они сталкиваются с ситуация, когда они нуждаются в контексте и думают, что у них его нет. Опять же, Java-это объектно-ориентированный язык с дизайном наследования.

у вас только "есть" контекст внутри вашей деятельности, потому что ваша деятельность сама наследуется от контекста. В этом нет магии (за исключением всего того, что ОС делает сама по себе, чтобы установить различные параметры и правильно "настроить" ваш контекст). Таким образом, откладывая проблемы с памятью/производительностью (например, удерживая ссылки на контекст, когда вам не нужно или делать это таким образом, который имеет негативные последствия для памяти и т. д.), контекст-это объект, как и любой другой, и его можно передавать так же, как любой POJO (простой старый объект Java). Иногда вам может потребоваться сделать умные вещи, чтобы получить этот контекст, но любой обычный класс Java, который простирается ни от чего другого, кроме самого объекта, может быть написан таким образом, что имеет доступ к контексту; просто выставьте открытый метод, который принимает контекст, а затем используйте его в этом классе по мере необходимости. Это было не предназначен для исчерпывающего лечения контекста или внутренних Android, но я надеюсь, что это поможет в демистификации контекста немного.


контекст-это дескриптор системы; он предоставляет такие услуги, как разрешение ресурсов, получение доступа к базам данных и предпочтениям и т. д. Android приложение имеет деятельность. Контекст - это дескриптор среды, в которой работает приложение. Объект activity наследует объект Context.

для получения дополнительной информации, смотрите в введение в разработку Android с Android Studio-учебник.


пока вы собираетесь думать в любом случае, думайте по-крупному.

интерфейс для глобальной информации про окружение приложения. Это абстрактный класс, реализация которого обеспечивается системой Android.

Он позволяет получить доступ к ресурсам и классам приложения, а также к вызовам для операций уровня приложения, таких как запуск действий, вещание и получение намерений и т. д.

Activity diagram


ANDROID И КОНТЕКСТ

Если вы посмотрите через различные API Android, вы будете обратите внимание, что многие из них принимают android.content.Context объект как параметр. Вы также увидите, что действие или услуга обычно используются как Контекст. Это работает, потому что оба этих класса распространяются из контекста.

Что такое контекст?

согласно справочной документации Android, это сущность, представляющая различные данные среды. Он обеспечивает доступ к локальным файлы, базы данных, загрузчики классов, связанные со средой, службы, включая службы системного уровня, и многое другое. На протяжении всей этой книги и в ваш день -- день кодирования с Android, вы увидите контекст передается часто. From:" Android In Practice " book.


Андроид контекст это интерфейс это позволяет получить доступ к конкретным ресурсам приложения и классу и информации о среде приложения.

Если ваш Android-приложения веб-приложения, ваш контекст был бы чем-то подобно ServletContext (я не делаю точное сравнение здесь)

ваши действия и службы также расширяют контекст, чтобы они унаследовали все эти методы для доступа к среде информация, в которой работает приложение.


простой пример для понимания context в android:

каждый босс имеет помощника, чтобы заботиться, чтобы сделать все менее важные и трудоемкие задачи. Если файл или чашка кофе необходимы, помощник находится в бегах. Некоторые боссы едва знают, что происходит в офисе, поэтому они спрашивают своих помощников об этом тоже. Они делают некоторые работы сами, но для большинства других вещей им нужна помощь их помощников.

в этом случае

Boss – это Приложения для Android

помощник – это контекст

файлы / чашка кофе-это ресурсы

мы обычно вызываем контекст, когда нам нужно получить информацию о различных частях нашего приложения, таких как действия, приложения и т. д.

некоторые операции(вещи, где требуется помощник), где участвует контекст:

загрузки общих ресурсов Создание динамических представлений Отображение сообщений тостов Запуск деятельности и т. д. Различные способы получение контекста:

getContext()

getBaseContext()

getApplicationContext()

this

  • Context представляет дескриптор для получения данных среды .
  • сам контекстный класс объявляется как абстрактный, реализация которого обеспечивается ОС android.
  • контекст похож на пульт телевизора и канала в телевизоре-это ресурсы, услуги и т. д. enter image description here

что вы можете сделать с ним ?

  • загрузки ресурсов.
  • запуск нового вида деятельности.
  • создание просмотр.
  • получение системного сервиса.

способы получить контекст:

  • getApplicationContext()
  • getContext()
  • getBaseContext()enter image description hereenter image description here

просто положить его там для новичков;

Итак, сначала поймите контекст слова:

по-английски-lib. это значит:

"обстоятельства, которые созданы для события, заявления или идея, и в терминах которой она может быть полностью понята и оценена."

"части чего-то написанного или сказанного, которые непосредственно предшествуют и следуйте за словом или отрывком и проясните его значение."

Теперь берем такое же понимание мира программирования:

контекст текущего состояния приложения / объекта. Он позволяет вновь созданным объектам понимать, что происходит. Обычно вы вызываете его, чтобы получить информацию о другой части вашей программы (активность, пакет/приложение)

вы можете получить контекст, вызывая getApplicationContext(), getContext(), getBaseContext() или this (когда в классе activity).

чтобы получить контекст в любом месте приложения, используйте следующее код:

создать новый класс AppContext приложения для Android

public class AppContext extends Application {

    private static Context context;

    public void onCreate(){
        super.onCreate();
        AppContext.context = getApplicationContext();
    }

    public static Context getAppContext() {
        return AppContext.context;
    }
}

теперь в любое время, когда вы хотите контекст приложения в классе без активности, вызовите этот метод, и у вас есть контекст приложения.

надеюсь, что это поможет ;)


подумайте об этом как о виртуальной машине, которая отключила процесс, в котором работает приложение или служба. Среда siloed имеет доступ к куче базовой системной информации и определенным разрешенным ресурсам. Вам нужен этот контекст, чтобы получить эти услуги.


Context является ссылкой на текущий объект как это. Также контекст позволяет получить доступ к информации о среде приложения.


класс android.content.Context обеспечивает подключение к системе Android и ресурсами проекта. Это интерфейс для глобальной информации про окружение приложения.

контекст также предоставляет доступ к службам Android, например службе определения местоположения.

деятельность и услуги продлить Context класса.


контекст в основном для доступа к ресурсам и получения сведений о среде приложения(для контекста приложения) или деятельности (для контекста деятельности) или любого другого...

чтобы избежать утечки памяти, вы должны использовать контекст приложения для всех компонентов, которым нужен объект контекста.... для получения дополнительной информации нажмите здесь


Context-контекст текущего состояния приложения/объекта.Его сущность, которая представляет различные данные среды . Контекст помогает текущей деятельности взаимодействовать с внешней средой android, такой как локальные файлы, базы данных, загрузчики классов, связанные с окружающей средой, службы, включая службы системного уровня, и многое другое.

контекст-это дескриптор системы . Он предоставляет такие услуги, как разрешение ресурсов, получение доступа к базам данных и предпочтениям и так далее. Приложение для Android деятельности. Это похоже на дескриптор среды, в которой в настоящее время работает ваше приложение. Объект activity наследует объект Context.

вызова различных методов, с помощью которых вы можете получить контекст 1. getApplicationContext(), 2. метода getcontext(), 3. getBaseContext() 4. или это (когда в классе деятельности).


контекст-это экземпляры класса android.содержание.Контекст обеспечивает подключение к системе Android, которая выполняет приложение. Например, вы можете проверить размер текущего дисплея устройства через контекст.

Он также предоставляет доступ к ресурсам проекта. Это интерфейс для глобальной информации про окружение приложения.

класс Context также предоставляет доступ к службам Android, например, диспетчер будильника для запуска времени основанные события.

действия и службы расширяют класс контекста. Поэтому они могут быть непосредственно использованы для доступа к контексту.


контекст - это интерфейс для глобальной информации про окружение приложения. Это абстрактный класс, реализация которого обеспечивается


интерфейс для глобальной информации про окружение приложения. Это абстрактный класс, реализация которого обеспечивается системой Android. Он позволяет получить доступ к ресурсам и классам конкретных приложений, а также к вызовам для операций на уровне приложений, таких как запуск мероприятий, вещание и получение намерений и т. д.


экземпляры класса android.содержание.Контекст обеспечивает подключение к системе Android, которая выполняет приложение. Например, вы можете проверить размер текущего дисплея устройства через контекст.

Он также предоставляет доступ к ресурсам проекта. Это интерфейс для глобальной информации про окружение приложения.

класс контекста также предоставляет доступ к службам Android, например, диспетчер сигналов тревоги для запуска времени события.

действия и службы расширяют класс контекста. Поэтому они могут быть непосредственно использованы для доступа к контексту.


на Context Это то, что большинство из нас назвали бы приложение. Он сделан системой Android и способен делать только то, что может приложение. В Tomcat контекст также является тем, что я бы назвал приложением.

существует один контекст, который содержит много действий, каждое действие может иметь много представлений.

очевидно, некоторые скажут, что это не подходит из-за того или иного, и они, вероятно, правы, но говорят, что контекст-это ваш текущий приложение поможет вам понять, что вы вкладываете в параметры метода.


контекст означает, что Android узнает, в какой деятельности я должен пойти или действовать.

1 - тост.makeText (контекст, "введите все подробности", тост.LENGTH_SHORT).показывать(); он использовался в этом. Context context = ActivityName.это:

2 -startActivity(новое намерение(контекст,LoginActivity.класс));

в этом контексте означает, из какой деятельности вы хотите перейти к другой деятельности. контекст или ActivityName.это быстрее, чем getContext и getApplicatinContext.


Аналогия С Помощником Босса

давайте проведем небольшую аналогию, прежде чем погрузиться глубоко в техническую сторону контекста

у каждого босса есть помощник или кто-то( мальчик на побегушках) кто меньше важные и отнимающие много времени вещи. Например, если они нужен файл или кофе, тогда помощник будет в бегах. Босс не будет знать, что происходит в фоновом режиме, но файл или задача будет быть доставлены

Здесь
Босс - Приложения Для Android
Помощник-Контекст
Файл или чашка кофе-ресурс

что официальный сайт разработчика Android говорит о контекст

контекст-это ваша точка доступа для связанных с приложением ресурсов

давайте посмотрим некоторые из таких ресурсов или задач

  • запуск активности.

  • получение абсолютного пути к каталог кэша конкретного приложения на файловая система.

  • определение того, разрешено ли данное разрешение для конкретного процесса и идентификатор пользователя в системе.

  • проверка того, было ли вам предоставлено определенное разрешение.

и так далее.
Поэтому, если приложение для Android хочет начать действие, оно переходит прямо к Context (точка доступа) и Context класс возвращает ему ресурсы (намерение в данном случае).

как и любой другой класс Context класс тоже имеет поля и методы.
Вы можете изучить больше о Context в официальной документации, она охватывает практически все, доступные методы, поля и даже как использовать поля с методами.


Если вы хотите подключить контекст с другими знакомыми классами в Android, имейте в виду эту структуру:

Контекст

Контекст

Контекст

Контекст

Контекст

Итак, все эти классы являются контекстами по-своему. Вы можете бросить сервис и ListActivity to контекст Если вы хотите. Но если вы посмотрите внимательно, некоторые из классов также наследуют тему. В activity или fragment вы хотели бы, чтобы тематика применялась к вашим взглядам, но не заботитесь об этом сервис класс, например.

объясняю разницу в контекстах здесь.


проще говоря, андроиды Context это беспорядок, который вы не будете любить, пока не перестанете беспокоиться.

Android Contexts являются:

  • Бог-объектов.

  • вещь, которую вы хотите передать все свое приложение, когда вы начинаете разрабатывать для Android, но не будете этого делать, когда вы немного приблизитесь к программированию, тестированию и самому Android.

    • непонятно зависимость.

    • общий источник утечек памяти.

    • Пита для тестирования.

  • фактический контекст, используемый системой Android для отправки разрешений, ресурсов, предпочтений, услуг, трансляций, стилей, отображения диалогов и раздувания макета. И вам нужны разные Context экземпляры для некоторых отдельных вещей (очевидно, вы не можете показать диалог из контекста приложения или службы; макеты завышены от контекстов применения и деятельности могут отличаться).


контекст является Android конкретного api для каждого приложения-s песочница это обеспечивает доступ к частным данным приложения, таким как ресурсы, база данных, частные filedirectories, предпочтения, настройки ...

большинство privatedata одинаковы для всех видов деятельности/услуг / broadcastlisteners одного приложения.

поскольку приложение, действие, служба реализуют контекстный интерфейс, они могут использоваться там, где вызов api нуждается в параметре контекста


Context значит тока. Context используйте для выполнения операции для текущего экрана. бывший.
  1. getApplicationContext()
  2. getContext ()

Toast.makeText(getApplicationContext(), "hello", Toast.LENGTH_SHORT).show();

Context означает компонент (или приложение) в различные сроки. Если я ем так много пищи между 1 и 2 часами дня, то мой контекст этого времени используется для доступа ко всем методам (или ресурсам), которые я использую в течение этого времени. Контент-это компонент (приложение) на определенное время. Context компонентов приложения продолжает меняться в зависимости от базового жизненного цикла компонентов или приложения. Например, внутри onCreate ()Activity,

getBaseContext() -- дает context на Activity который устанавливается (создается) конструктором действия. getApplicationContext() -- дает Context настройка (создана) во время создания приложения.

Примечание: <application> содержит все компоненты Android.

<application>
    <activity> .. </activity> 

    <service>  .. </service>

    <receiver> .. </receiver>

    <provider> .. </provider>
</application> 

это означает, когда вы называете getApplicationContext() изнутри любого компонента вы вызываете общий контекст всего приложения.

Context продолжает изменяться системой на основе жизненного цикла компонентов.


контекст в Android-это интерфейс для глобальной информации про окружение приложения. Это абстрактный класс, реализация которого обеспечивается системой Android. Он позволяет получить доступ к ресурсам и классам конкретных приложений, а также к вызовам для операций на уровне приложений, таких как запуск мероприятий, вещание и получение намерений и т. д.


этот атрибут объявляет, какое действие этот макет связан с по умолчанию.


на Java мы говорим этой ключевое слово относится к состоянию текущего объекта приложения.
Аналогично, в альтернативе у нас есть Context в Android развития.

Это может быть определено явно или неявно,

Context con = this;

getApplicationContext();

getBaseContext();

getContext();