Главная » Разработка для Android » АКТИВНОСТИ, НАМЕРЕНИЯ И ЗАДАЧИ – ANDROID ПРИЛОЖЕНИЯ

0

 

Активность (activity) в Android – это и элемент для взаимодействия с пользователем (обычно активность целиком занимает экран мобильного устройства с Android), и элемент исполнения. Когда вы создаете интерактивную программу

Android, то начинаете с создания подклассов на основе класса Actіvity. Активности предоставляют многоразовые, взаимозаменяемые элементы рабочего цикла компонентов пользовательского интерфейса во всем приложении Android.

Как в таком случае одна активность активизирует другую и передает информацию о том, что намерен делать пользователь? Коммуникационным блоком является класс Intent (в переводе с английского – «намерение»). Intent представляет абстрактное описание функции, которую одна активность должна выполнить по требованию другой, например сделать фотоснимок. Намерения образуют основу системы слабого связывания, которая позволяет активностям запускать друг друга. Когда приложение назначает намерение, может возникнуть ситуация, в которой несколько различных активностей могут зарегистрироваться на выполнение желаемой операции.

Вы уже написали код для активности в тестовом приложении, которое мы создавали для проверки того, правильно ли установлен комплект Android SDK. Давайте вновь обратимся к этому коду:

Когда система запускает эту активность, вызывается конструктор для TestActivity подкласса Activity, после чего вызывается его метод onCreate. Таким образом, загружается и отображается иерархия видов, описанная в файле main.xml.

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

Каждая активность в приложении Android в целом не зависит от других активностей. Код, реализующий одну активность, не занимается непосредственным вызовом методов в коде, который реализует другую активность. Другие элементы фреймворка Android – в частности, уже упоминавшиеся намерения (Intent) – используются для управления коммуникацией. Следовательно, нет никаких оснований сохранять ссылки на объекты Activity. Среда времени исполнения Android (Android Runtime Activity), создающая активности, а также управляющая активностями и другими компонентами приложения, часто возвращает используемую ими память в общий пул, чтобы ограничивать отдельные задачи и выделять на каждую из них относительно небольшой объем памяти. Можете быть уверены, что спонтанные попытки управлять памятью активностей будут в основном контрпродуктивными.

Чтобы не было необходимости основывать управление рабочими циклами в пользовательском интерфейсе на вызовах методов, приложения описывают намерение (Intent), которое они хотят выполнить, и запрашивают у системы найти подходящий способ для этого. Приложение Android Home Screen (Домашняя страница Android) запускает вашу программу, пользуясь этими описаниями, и каждое приложение затем может действовать так же, применяя подобранные таким образом намерения. Разработчики Android называют получающийся в результате рабочий цикл задачей (task). Задача – это цепь активностей, которая зачастую может захватывать более одного приложения и, конечно же, гораздо больше одного процесса. На рис. 3.3 показана задача, которая распространяется на три приложения и множество активностей (в табл. 3.1 приводится пример). Цепь активностей, которые составляют эту задачу, распространяется на три отдельных процесса и на три кучи и может существовать независимо от других задач, которые, возможно, будут запускать другие экземпляры подклассов той же активности (класса Activity).

Рис. 3.3. Активности в единой задаче, которая распространяется на несколько приложений

Таблица 3.1. Примеры единой задачи, состоящей из активностей, которые относятся к разным приложениям

Источник: Android. Программирование на Java для нового поколения мобильных устройств

По теме:

  • Комментарии