Context service что это за программа на Андроид

Что такое «контекст» на Android?

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

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

автор: Nilesh Singh

30 ответов

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

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

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

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

TextView tv = new TextView(getContext()); ListAdapter adapter = new SimpleCursorAdapter(getApplicationContext(), . );
context.getSystemService(LAYOUT_INFLATER_SERVICE) getApplicationContext().getSharedPreferences(*name*, *mode*);
getApplicationContext().getContentResolver().query(uri, . );
автор: Sameer Segal

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

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

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

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

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

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

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

Уроки Андроид программирования | #8 — Красивый дизайн приложения

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

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

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

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

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

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

TextView TV=new TextView(this);

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

автор: Devrath

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

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

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

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

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

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

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

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

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

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

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

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 к заранее задуманным парадигмам или изученному поведению.

Читайте также:
Mi community что это за программа и нужна ли она на телефоне xiaomi redmi

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

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

Источник: askdev.ru

Context — контекст в android — что это, как получить и зачем использовать

Контекст (Context) – это базовый абстрактный класс, реализация которого обеспечивается системой Android. Этот класс имеет методы для доступа к специфичным для конкретного приложения ресурсам и классам и служит для выполнения операций на уровне приложения, таких, как запуск активностей, отправка широковещательных сообщений, получение намерений и прочее. От класса Context наследуются такие крупные и важные классы, как Application, Activity и Service, поэтому все его методы доступны из этих классов.

Методы получения контекста и их различие

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

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

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

Как было сказано выше, контекст является базовым классом для классов Application, Activity и Service, а значит его методы входят в их состав. Именно поэтому для передачи контекста в качестве параметра можно использовать как ссылку на сам контекст (getBaseContext), так и ссылки на наследуемые классы (getApplicationContext, getContext, this, MainActivity.this, getActivity).

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

Например, если вызвать сообщение с помощью Toast, используя разные context, то:

Сообщение умрёт вместе с активностью:
Toast.makeText(this, «Text», Toast.LENGTH_SHORT).show();Сообщение умрёт вместе с приложением:
Toast.makeText(getApplicationContext(), «Text «, Toast.LENGTH_SHORT).show();Будет видно даже после завершения приложения:
Toast.makeText(getBaseContext(), «Text «, Toast.LENGTH_SHORT).show();

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

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

Контекст (Context) – это базовый абстрактный класс, реализация которого обеспечивается системой Android. Этот класс имеет методы для доступа к специфичным для конкретного приложения ресурсам и классам и служит для выполнения операций на уровне приложения, таких, как запуск активностей, отправка широковещательных сообщений, получение намерений и прочее. От класса Context наследуются такие крупные и важные классы, как Application, Activity и Service, поэтому все его методы доступны из этих классов. Источник

Методы получения контекста и их различие

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

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

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

Как было сказано выше, контекст является базовым классом для классов Application, Activity и Service, а значит его методы входят в их состав. Именно поэтому для передачи контекста в качестве параметра можно использовать как ссылку на сам контекст (getBaseContext), так и ссылки на наследуемые классы (getApplicationContext, getContext, this, MainActivity.this, getActivity).

Читайте также:
Udl что это за программа как удалить

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

Например, если вызвать сообщение с помощью Toast, используя разные context, то:
Сообщение умрёт вместе с активностью:
Toast.makeText(this, «Text», Toast.LENGTH_SHORT).show();

Сообщение умрёт вместе с приложением:
Toast.makeText(getApplicationContext(), «Text «, Toast.LENGTH_SHORT).show();

Будет видно даже после завершения приложения:
Toast.makeText(getBaseContext(), «Text «, Toast.LENGTH_SHORT).show();

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

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

Вам также может быть интересно

Реализация адаптивного пользовательского интерфейса в Android

Дизайн android приложений 3 5 429

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

Уроки по android разработке на Java 4 12 611

В этом уроке начинаем обзор способов сохранения данных в android приложениях. Начнем с SharedPreferences.

android, autoimport, androidstudio

Инструменты android разработчика 0 4 526

Как победить ошибки в Android Studio, связанные с отсутствующими импортами? При использовании фрагментов кода

Как создать приложение для Android на языке Kotlin

Уроки создания андроид-приложений на Kotlin 5 29 432

Курс по разработке android-приложений на языке Kotlin Начинаем новый курс по разработке андроид-приложений на

Источник: www.fandroid.info

Приложение Context Service остановлено на Samsung Galaxy: что это, как убрать?

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

Оповещение «к сожалению, Context Service остановлено на Samsung Galaxy». О том, что это такое спрашивают пользователи сети. Причина возникновения — работа с приложениями, и, используемым софтом.

Как исправить ошибку

Для корректной работы используют:
Перезапуск. Применим, если проблема проявляется при работе с софтом, а не сторонними программами.

Нужно удалить софт, а потом — начать установку. после, следует удостовериться в том, что удалось ли избавиться от ошибки.

Удалить. Иногда ПО не поддерживаются, и, как вариант решения — удаление. Избавиться от ошибки, которая провоцируется софтом.

Очищение кэша. Файлы — источники ошибок и проблем, возникающих в ПО. Решаются проблемы, связанные с приложением. Для выполнения процесса, потребуется:

  • Переход в «Настройки»;
  • Раздел «Приложения»
  • «Диспетчер задач»;
  • Выбор «Все»;
  • Поиск ПО, выдавшего ошибку;
  • Выполнение очистки.

Чистка оперативной памяти

Профилактика возникновения ошибок. Работа программного софта — в фоновом режиме, применяется значительный объем памяти устройства. Из-за этого засоряется существенное количество оперативной памяти. Ввиду этого и возникает некорректная работа. Алгоритм решения проблемы: «Диспетчер задач» —«Очистка памяти».

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

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

Есть возможность переброса информации на ПК — на это уйдет минимум времени.

Источник: list-name.ru

Зачем нужен context в android?

Наткнулся в коде, при создании интента передается объект context . Зачем он нужен, не понимаю ? Если можно, максимально просто.

Отслеживать
13k 12 12 золотых знаков 41 41 серебряный знак 70 70 бронзовых знаков
задан 22 фев 2016 в 6:31
536 5 5 серебряных знаков 16 16 бронзовых знаков

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Context – это объект, который предоставляет доступ к базовым функциям приложения: доступ к ресурсам, к файловой системе, вызов активности и т.д. Activity является подклассом Context , поэтому в коде мы можем использовать её как ИмяАктивности.this (напр. MainActivity.this ), или укороченную запись this . Классы Service , Application и др. также работают с контекстом.

Доступ к контексту можно получить разными способами. Существуют такие методы как getApplicationContext() , getContext() , getBaseContext() или this , который упоминался выше, если используется в активности.

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

В свою очередь Context имеет свои методы, позволяющие получать доступ к ресурсам и другим объектам.

getAssets() getResources() getPackageManager() getString() getSharedPrefsFile()

Источник: ru.stackoverflow.com

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