Что такое «контекст» на Android? - PullRequest
1794 голосов
/ 26 августа 2010

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

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

Ответы [ 28 ]

15 голосов
/ 07 сентября 2012

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

15 голосов
/ 29 июля 2011

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

12 голосов
/ 01 ноября 2012

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

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

Деятельность и услуги расширяют класс Context.

8 голосов
/ 26 апреля 2015

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

Context обеспечивает доступ к ресурсам и классам приложений, а также к вызовам для операций уровня приложения, таких как launching activities, broadcasting and receiving intents, etc.

Вот пример

 public class MyActivity extends Activity {

      public void Testing() {

      Context actContext = this; /*returns the Activity Context since   Activity extends Context.*/

      Context appContext = getApplicationContext();    /*returns the context of the single, global Application object of the current process. */

      Button BtnShowAct1 = (Button) findViewById(R.id.btnGoToAct1);
      Context BtnContext = BtnShowAct1.getContext();   /*returns the context of the View. */

Для получения более подробной информации вы можете посетить http://developer.android.com/reference/android/content/Context.html

8 голосов
/ 06 февраля 2014

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

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

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

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

7 голосов
/ 04 января 2014

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

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

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

7 голосов
/ 16 ноября 2011

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

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

5 голосов
/ 20 сентября 2017

Аналог босса-ассистента

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

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

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

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

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

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

  • Запуск действия.

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

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

  • Проверка того, получили ли выконкретное разрешение.

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

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

5 голосов
/ 20 октября 2013

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

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

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

4 голосов
/ 24 июня 2018

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

1 - Toast.makeText(context, "Enter All Details", Toast.LENGTH_SHORT).show();.Context context = ActivityName.this;

2 - startActivity(new Intent(context,LoginActivity.class));

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...