Компоненты Android
Три из четырех типов компонентов – действия (activities), службы (services) и широковещательные приемники (broadcast receivers) - активируются асинхронным сообщением, называемым значением (intent).
Активация компонентов
Значения связывают отдельные компоненты друг с другом во время выполнения (вы можете думать о них как о посыльных, которые запрашивают действие от других компонентов), независимо от того, принадлежит ли компонент вашему приложению или другому.
Широковещательный приемник
Широковещательные приемники не отображает пользовательский интерфейс, они могут создавать уведомление в строке состояния, чтобы предупредить пользователя о событии, которое может произойти.
Системные события
Приложение может быть зарегистрировано для приема трансляций, происходящих в системных событиях, таких как BOOT COMPLETE, SMS RECEIVED, BATTERY LOW и т. д. Когда приложение зарегистрировано для события SMS RECEIVED, его приемник будет вызываться каждый раз при получении нового SMS.
Пользовательские трансляции
Помимо системных событий, приложение также может генерировать пользовательские возможности трансляции, для которых мы можем зарегистрировать приемник.
Тем не менее, широковещательный приемник является всего лишь «шлюзом» для других компонентов и предназначен для выполнения минимально необходимого объема работы.
Например, он может инициировать службу для выполнения некоторой работы на основе события. Например, приложение может зарегистрировать приемник для принятия сообщений о низком уровне заряда батареи и изменить его поведение на основе этой информации.
Пример:
Широковещательный приемник «MyBroadCastReceiver» зарегистрирован в файле AndroidManifest.xml. Широковещательные приемники обычно регистрируются в следующем формате. Код кажется небезопасным, поскольку приемник экспортируется.
Службы
Служба - это компонент, который работает в фоновом режиме для выполнения длительных операций или чтобы выполнять работы для удаленных процессов.
Служба не предоставляет пользовательский интерфейс. Даже такой компонент, как активность, не может запускать службу и позволять управлять ею или связываться с ней для взаимодействия.
Например, служба может воспроизводить музыку в фоновом режиме, когда пользователь пользуется другим приложением или может получать данные по сети, не блокируя взаимодействие пользователя с активностью.
Ниже представлены три различные типа службы:
Scheduled – Служба считается scheduled, когда API, такой как Планировщик заданий, представленный в Android 5.0 (API уровня 21), запускает службу.
Started– Служба считается started, когда компонент приложения (например, активность) инициирует начало службы ().
Bound– Служба считается bound, когда компонент приложения связывается с ним, вызывая bind Service ().
Служба в манифесте декларирует все службы в файле манифеста приложения, как и для активности (activities) и других компонентов.
Код:
<Manifest … >
…
<application … >
<service android: name=”.Example Service” />
…
</application>
</manifest>
Службы
Активность
Говоря простым языком, активность представляет собой один экран с пользовательским интерфейсом. Например, одно действие для входа, а другое – после того, как вход в систему был успешно выполнен.
Активность служит точкой входа для взаимодействия пользователя с приложением, а также является центральной в тех случаях, когда пользователь перемещается в приложении или между приложениями.
Класс Активности предоставляет ряд обратных вызовов, которые позволяют ей знать, что состояние изменилось: система создает, останавливает, возобновляет действие или разрушает процесс, в котором происходит действие.
Примеры активностей
Провайдер контента
Компонент провайдера контента предоставляет данные из одного приложения в другое по запросу.
Вы можете хранить данные в файловой системе, базе данных Sq-Lite, в Интернете или в любом другом постоянном хранилище, к которому может обратиться ваше приложение.
Через провайдер контента другие приложения могут запрашивать или даже изменять данные (если провайдер контента позволяет это).
Провайдер контента является полезным в тех случаях, когда приложение хочет поделиться данными с другими приложениями.
Ссылка скрыта от гостей
Источник: