Что это за программа context

На прошлом уроке (№ 21) мы создали приложение, которое содержит два Activity. Напомню, что для создания Activity, необходимо:
— создать класс, с суперклассом android.app.Activity
— создать Activity-запись в манифесте и указать ей созданный класс в поле Name

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

Intent intent = new Intent(this, ActivityTwo.class); startActivity(intent);

Context в Android приложении

Context в Android приложении

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

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

Учим useContext за 10 минут — React Hooks. Вся база React Context API

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

Неправильное использование Context может легко привести к утечкам памяти в Android приложении.

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

Читайте также:
Openal32 что это за программа

Контекст приложения

Это singleton-экземпляр (единственный на всё приложение), и к нему можно получить доступ через функцию getApplicationContext() . Этот контекст привязан к жизненному циклу приложения. Контекст приложения может использоваться там, где вам нужен контекст, жизненный цикл которого не связан с текущим контекстом или когда вам нужно передать контекст за пределы Activity .

Например, если вам нужно создать singleton-объект для вашего приложения, и этому объекту нужен какой-нибудь контекст, всегда используйте контекст приложения.

Если вы передадите контекст Activity в этом случае, это приведет к утечке памяти, так как singleton-объект сохранит ссылку на Activity и она не будет уничтожена сборщиком мусора, когда это потребуется.

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

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

Контекст Activity

Этот контекст доступен в Activity и привязан к её жизненному циклу. Контекст Activity следует использовать, когда вы передаете контекст в рамках Activity или вам нужен контекст, жизненный цикл которого привязан к текущему контексту.

Урок 3. Введение в React Hooks: useContext

getContext() в ContentProvider

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

Когда нельзя использовать getApplicationContext()?

  • Это не полноценный контекст, поддерживающий всё, что может Activity . Некоторые вещи, которые вы попытаетесь сделать с этим контекстом, потерпят неудачу, в основном связанные с графическим интерфейсом.
  • Могут появляться утечки памяти, если контекст из getApplicationContext() удерживается на каком-то объекте, который вы не очищаете впоследствии. Если же где-то удерживается контекст Activity , то как только Activity уничтожается сборщиком мусора, всё остальное тоже уничтожается. Объект Application остается на всю жизнь вашего процесса.
Читайте также:
Что за программа активация записи

Правило большого пальца

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

  • android development
  • android
  • андроид
  • перевод с английского
  • программирование
  • разработка
  • devcolibri
  • никто не читает теги
  • Разработка мобильных приложений
  • Разработка под Android

Источник: habr.com

Освоение контекста Android

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

Предисловие

Моя миссия в этой статье — помочь вам освоить Android Context. Это одна из основных тем разработки под Android, и вряд ли кто-либо из разработчиков использует контекст полностью и так, как он был разработан.

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

Начиная

Вы когда-нибудь сталкивались с этим вопросом: в чем разница между getContext() , this , getBaseContext() и getApplicationContext() ? Если да, эта статья поможет прояснить большую часть вашей путаницы.

Примечание. вы должны знать основы разработки для Android, такие как Activity, Fragments, Broadcast Receiver и другие строительные блоки. Если вы новый разработчик, который только начинает свое путешествие в мир Android, возможно, это не лучшее место для начала.

Читайте также:
Что за программа медиа джет

Что, черт возьми, за контекст?

Посмотрим правде в глаза, контекст — одна из самых плохо спроектированных функций Android API. Вы могли бы назвать это объектом «Бог».

Android-приложение или пакет приложений (APK) — это набор компонентов. Эти компоненты определены в манифесте и состоят в основном из Activity (UI), Service (Background), BroadcastReceiver (Action), ContentProvider (Data) и Resources (изображения, строки и т. Д.).

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

Точно так же операционная система Android также была разработана для предоставления доступа к компонентам. Некоторые из них хорошо известны: WifiManager, Vibrator и PackageManager.

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

Собственные компоненты

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru