Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Android base.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
31 Кб
Скачать
☆

Активация компонентов

Три из четырёх типов компонентов — Activity (деятельность), Service (сервис), а также Broadcast receivers (получатель широковещательных сообщений) — активируются с помощью асинхронного сообщения Intent (намерение). Intent связывает отдельные компоненты друг с другом во время выполнения, будь то компонент принадлежащий вашему приложению или другой. Intent (намерение) создаётся с помощью класса Intent, который описывает запрос на активацию конкретного компонента или конкретного типа компонента, соответственно Intent может быть явным или неявным. Для Activity и Service, Intent(намерение) определяет действие, которое надо выполнить (например, "Просмотреть" или "Отправить" что-то), и может указать URI (Uniform Resource Identifier — унифицированный идентификатор ресурса) данных необходимых для выполнения. Например, Intent может передать запрос Activity показать изображение или открыть веб-страницу. Для broadcast receivers Intent просто определяет транслируемые сообщения (например, широковещательное сообщения о том, что аккумулятор разряжен содержит только строковую константу обозначающую "батарея разряжена"). Последний компонент - Content provider не активируется с помощью Intent. Хотя он и может вызывается, если Content provider запрашивает данные из ContentResolver. Методы для активации каждого типа компонентов:

  • Для запуска Activity используются методы startActivity(Intent intent) или startActivityForResult(Intent intent) (если необходимо вернуть результат).

  • Для запуска Service вызывается метод startService (Intent service).

  • Для запуска Broadcast reciever — sendBroadcast(Intent intent), sendOrderedBroadcast(Intent intent, String receiverPermission), или sendStickyBroadcast(Intent intent).

  • Для формирования запроса для Content Provider используется метод query ()

Файл манифеста

Перед запуском любого компонента операционная система Android читает файл манифеста приложения AndroidManifest.xml, чтобы убедиться, что запускаемый компонент существует. В этом файле должны быть объявлены все компоненты приложения, которые находятся в корневой папке приложения. Кроме этого манифест-файл выполняет другие функции:

  • Определяет пользовательские разрешения, такие как доступ в Интернет или чтение контактов.

  • Объявление минимального API уровня (версии Android), необходимого для приложения.

  • Объявление аппаратных и программных требований, такие как камера, Bluetooth, или мультитач экран.

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

Но все же основная задача манифеста сообщить системе о компонентах приложения. Например, можно объявить Activity (деятельность) следующим образом:

copy to clipboardподсветка кода

  1. <?xml version="1.0" encoding="utf-8"?>  

  2. <manifest ... >  

  3.     <application android:icon="@drawable/app_icon.png" ... >  

  4.         <activity android:name="com.example.project.ExampleActivity"  

  5.             android:label="@string/example_label" ... >  

  6.         </activity>  

  7.         ...  

  8.     </application>  

  9. </manifest>  

В элементе <application> атрибут Android:icon указывает на ресурсы для иконки приложения. В элементе <activity> атрибут Android:name определяет полный путь на имя класса Activity (деятельности), а атрибут Android:label задаёт заголовок приложения. Для определения компонентов используются: <activity> для Activity (деятельности) <service> для Service (сервисы) <receiver> для Broadcast reciever (получатели широковещательных сообщений) <provider> для Content providers (поставщики данных) Activity (деятельность), Service (сервис) и Content provider (поставщики данных), которые существуют в исходниках, но не заявлены в манифесте не видны системе и, следовательно, не смогут запуститься. Однако, Broadcast provider (получатель широковещательных сообщений) может создаваться динамически в коде (как объекты BroadcastReceiver) и регистрироваться с помощью вызова registerReceiver ().

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]