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

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

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

Ответы [ 28 ]

4 голосов
/ 02 февраля 2014

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

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

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

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

2 голосов
/ 14 февраля 2017

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

Context

Context

Context

Context

Context

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

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

2 голосов
/ 03 апреля 2017

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

Android Context s:

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

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

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

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

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

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

2 голосов
/ 27 марта 2017

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

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

Поскольку Application, Activity, Service реализуют интерфейс Context, их можно использовать там, где для вызова API требуется параметр Context

1 голос
/ 10 октября 2017

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

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

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

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

    <service>  .. </service>

    <receiver> .. </receiver>

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

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

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

0 голосов
/ 23 июня 2016

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

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

Context con = this;

getApplicationContext();

getBaseContext();

getContext();
0 голосов
/ 02 июля 2017

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

0 голосов
/ 01 мая 2017

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

Toast.makeText(getApplicationContext(), "hello", Toast.LENGTH_SHORT).show();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...