<activity>

СИНТАКСИС:
СОДЕРЖИТСЯ В:
<application>
МОЖЕТ СОДЕРЖАТЬ

<intent-filter>

<meta-data>

ОПИСАНИЕ:
Объявляет явление (подкласс Activity), которое реализует часть пользовательского интерфейса. Для каждого явления должен существовать элемент <activity в манифесте. Если явление не объявлено в манифесте, оно недоступно для системы и никогда не сможет быть запущено.
АТРИБУТЫ:
android:allowEmbedded

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

Значение по умолчанию false

android:allowTaskReparenting

Указывает может ли явление перемещаться из задачи, которая его запустила в родственную задачу, когда эта задача будет выведена на передний план: "true" если может перемещаться, "false" если должно оставаться в задаче, в которой было запущено.

Если атрибут не установлен, будет применен атрибут allowTaskReparenting элемента <application>. Значение по умолчанию "false"

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

Например, e-mail сообщение содержит ссылку на веб-страницу. Щелчок по ссылке откроет явление, способное отобразить веб-страницу. Это явление объявлено в приложении-браузере, но открывается как часть почтового клиента. Если переместить явление в задачу браузера, а затем открыть браузер, явление будет находиться уже внутри браузера. При этом, если вернуться в почтовый клиент, этого явления там уже не будет.

Родство явлений объявляется с помощью атрибута taskAffinity. Родство задачи определяется путем получения родства корневого явления. Таким образом, по определению, корневое явление всегда выполняется в задаче с таким же родством. Так явление с режимом запуска "singleTask" или "singleInstance" могут быть только в корневой задаче, смена родителя ограничена режимами "standard" и "singleTop". (Смотрите также атрибут launchMode).

android:alwaysRetainTaskState

Указывает должна ли система удерживать состояние задачи: "true" – должна, "false", если система позволяет сбрасывать задачу в исходное состояние в определенных ситуациях. Значение по умолчанию "false". Атрибут имеет значение только для корневого явления задачи, для остальных явлений он игнорируется.

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

Однако, если значение атрибута равно "true", пользователь всегда может вернутся к задаче и начать работу с последнего состояния, независимо от того, как он в нее попал. Это удобно, например, в приложениях вроде веб-браузера, состояние которого (множество открытых вкладок) пользователь не захочет потерять.

android:autoRemoveFromRecents
Указывает, должны ли задачи, запущенные из явления с этим атрибутом находиться в списке последних приложений, до тех пор, пока явление не будет завершено. Если значение "true", задача автоматически удаляется из списка. Этот атрибут отменяет действие флага FLAG_RETAIN_IN_RECENTS. Значение должно быть "true" или "false"
android:banner

Ресурс типа drawable предоставляет расширенный графический баннер для связанного элемента. Используется с тегом <activity> чтобы установить баннер по умолчанию для конкретного явления, или для тега <application>, чтобы установить баннер для всех явлений приложения.

Система использует баннер для представления приложения на домашнем экране Android TV. Поскольку баннер отображается только на домашнем экране, он должен быть указан только для приложений, явления которых обрабатывают намерение с категорией CATEGORY_LEANBACK_LAUNCHER.

Значением атрибута должна быть ссылка на ресурс типа drawable, содержащий изображение (например "@drawable/banner"). Баннера по умолчанию нет.

Смотрите информацию в разделах Баннеры и Создаем баннер на домашнем экране.

android:clearTaskOnLaunch

Указывает, должно ли явление удаляться из задачи, за исключением корневого явления, всякий раз, когда они заново запущены с домашнего экрана: "true" если задача всегда должны начинать с корневого явления, "false" – если нет. Атрибут имеет значение только для явлений, которые запускают новую задачу (корневые явления), для всех остальных явлений атрибут игнорируется.

Если значение равно true, каждый раз, когда пользователь запускает задачу снова, он перемещается в корневое явление, независимо от того, что он делал в задаче до этого и независимо от того, нажал он кнопку “Назад” или “Домой”, чтобы эту задачу покинуть. Если значение равно false, задача может быть очищена от явлений (смотрите атрибут alwaysRetainTaskState), но не всегда.

Предположим, например, что кто-то запустил явление Р с домашнего экрана и перешел в явление Q. Затем пользователь нажал кнопку “домой”, а затем вернулся к явлению Р. Как правило пользователь увидит явление Q, поскольку это последнее, что он делал в задаче. Однако, если атрибут явления P будет установлен в true, все явления (Q в данном случае) будут удалены при нажатии кнопки “домой”, когда задача уходит на задний план. И тогда пользователь увидит явление P при возвращении к задаче.

Если одновременно данный атрибут и атрибут allowTaskReparenting будут установлены в true, все явления, которые могут быть перемещены, будут перемещены в родительские задачи, а остальные явления будут уничтожены, как описано выше.

android:configChanges

Список изменений конфигурации, которые явление самостоятельно обрабатывает. Если конфигурация устройства меняется во время выполнения приложения, система по умолчанию уничтожает и заново создает явление, но указание конфигураций в этом атрибуте предотвращает перезапуск явления. Вместо этого, явление продолжает работать и вызывает метод onConfigurationChanged().

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

Далее перечислены возможные значения атрибута. Можно указывать несколько значений, разделяя их вертикальной чертой “|”, например "locale|navigation|orientation".

Значение Описание
mcc Изменился код страны (IMSI MCC) – SIM карта была обнаружена и обновился код страны.
mnc Изменился код мобильной сети (IMSI MNC) – SIM карта была обнаружена и обновился код сети.
locale Изменилась локаль – пользователь выбрал новый язык.
touchscreen Изменился тачскрин (в нормальной ситуации это никогда не происходит)
keyboard Изменилась клавиатура – например пользователь подключил внешнюю клавиатуру.
keyboardHidden Доступность клавиатуры изменилась – например пользователь стал использовать аппаратную клавиатуру
navigation изменилось устройство навигации (например трекбол). В нормальной ситуации такое никогда не происходит.
screenLayout изменился экран – такое может происходить при активации другого экрана.
fontScale Изменился масштаб шрифта – пользователь выбрал новый глобальный размер шрифта.
uiMode изменился режим пользовательского интерфейса – такое может происходить, если пользователь вставил устройство в док-станцию или изменил ночной режим. Смотрите UiModeManager. Добавлено в API 8.
orientation

изменилась ориентация экрана – пользователь повернул устройство.

Примечание: если целевое API равно 13 и выше (задается атрибутами minSdkVersion и targetSdkVersion), вы должны также указать в атрибуте конфигурацию screenSize, поскольку эта конфигурация также меняется при изменении ориентации.

screenSize Изменился текущий размер экрана. Сюда же относится изменение пропорций экрана, так что конфигурация меняется при повороте устройства из портреной ориентации в ландшафтную и обратно. Однако, если вы используете целевое API 12 или ниже, ваше приложение всегда должно обрабатывать изменение этой конфигурации самостоятельно (изменение этой конфигурация не вызывает перезапуска явлений, даже если приложение запущено на Android 3.2 и выше). Добавлено в API 13.
smallestScreenSize Изменился физический размер экрана. Этот параметр означает изменение размера экрана вне зависимости от ориентации, поэтому единственный вариант – это переключение вывода изображения на внешний дисплей. Изменение этой конфигурации соответствует изменению конфигурации smallestWidth. Однако, если целевое API равно 12 и выше, явление всегда обрабатывает изменение данной конфигурации самостоятельно (ее изменение не вызывает перезапуск явления даже на устройствах с Android 3.2 и выше). Добавлено в API 13.
layoutDirection Изменилось направление разметки, например “слева-на-право” на “справа-на-лево”. Добавлено в API 17.

Все эти изменения конфигурации могут повлиять на значения ресурсов, которые видит приложение. Поэтому при вызове onConfigurationChanged() крайне необходимо снова получить все ресурсы (включая разметку, drawable и прочие), чтобы корректно обработать изменение.

android:documentLaunchMode

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

Атрибут имеет четыре значения, которые производят следующие эффекты при открытии документа в приложении:

ЗначениеОписание
introExisting Явление использует существующую задачу для документа. Данное значение аналогично флагу FLAG_ACTIVITY_NEW_DOCUMENT без установки флага FLAG_ACTIVITY_MULTIPLE_TASK, как описано в разделе Последние задачи.
always Явление создает новую задачу для документа, даже если документ уже открыт. Это аналогично установке обоих флагов FLAG_ACTIVITY_NEW_DOCUMENT и FLAG_ACTIVITY_MULTIPLE_TASK.
none Явление не создает новую задачу для документа. Это значение по умолчанию, при котором новая задача создается только при установленном флаге FLAG_ACTIVITY_NEW_TASK. Список последних задач рассматривает явление, как это было бы по умолчанию: он показывает одну задачу приложения, которая содержит явление, которое пользователь вызвал последним.
never Явление не будет запущено с новым документом, даже если намерение включает флаг FLAG_ACTIVITY_NEW_DOCUMENT. Установка этого значения затирает значение флагов FLAG_ACTIVITY_NEW_DOCUMENT и FLAG_ACTIVITY_MULTIPLE_TASK, если какой-либо из них установлен в явлении, список последних задач показывает одну задачу для приложения, которая работает с явлением, запущенном последним.

Примечание: для значений, отличны от none и never, явление должно указывать режим launchMode="standard". Если данный атрибут не указан, используйте documentLaunchMode="none".

android:enabled

Указывает, может ли явление быть создано системой. true если может, false – если нет. Значение по умолчанию true.

Элемент<application> имеет свой атрибут enabled, который применяется для всех компонентов приложения, включая явления. Чтобы система смогла создать явление, атрибуты обоих элементов <application> и <activity> должны быть установлены в true (это их значение по умолчанию).

android:excludeFromRecents
Указывает должна ли задача, запущенная этим явлением, быть исключена из списка последних приложений. Укажите "true", чтобы не показывать задачу в списке последних приложений. Значение по умолчанию false.
android:exported

Указывает, может ли явление быть запущенным из другого приложения. "true" если может и "false" если нет. Если установлено значение false, явление сможет быть запущено только из его собственного приложения или из приложения с таким же идентификатором пользователя (User ID).

Значение по умолчанию зависит от того, содержит ли явление фильтры намерений. Отсутствие фильтров подразумевает, что явление может быть вызвано только явно по имени класса, то есть оно существует только для внутреннего пользования (если, конечно, другие не знают его имя). В таком случае значение по умолчанию "false". С другой стороны, наличие хотя бы одного фильтра означает, что явление предназначено для внешнего применения, и значение по умолчанию равно true.

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

android:finishOnTaskLaunch

Указывает, должен ли существующий экземпляр явления уничтожаться, если пользователь заново запустил эту задачу (с домешнег экрана). true если должен, false если нет. Значение по умолчанию false.

Если одновременно данный атрибут и атрибут allowTaskReparenting имеют значение true, данный атрибут перекрывает его. Родственность явлений игнорирутеся. Явление не перемещается, а уничтожается.

android:hardwareAccelerated

Указывает должно ли использоваться аппаратное ускорение для отрисовки данного явления, true если должна, false если нет. Значение по умолчанию false.

Начиная с Android 3.0, аппаратное ускорение OpenGL доступно приложениям, для улучшения производительности для большинства распространенных 2D графических операций. Если аппаратное ускорение разрешено, большинство операций с объектами Canvas, Paint, Xrefmode, ColorFilter, Shader и Camera ускоряются. В результате получается гладкая анимация, гладкое прокручивание и улучшенная отзывчивость во всем, даже в приложениях, которые явно не используют библиотеку OpenGL. Поскольку для аппаратного ускорения требуется больше ресурсов, ваше приложение будет потреблять больше памяти.

Помните, что не все операции OpenGL 2D ускоряются. Если вы разрешили аппаратное ускорение, протестируйте ваше приложение, чтобы убедиться, что все отрисовывается без ошибок.

android:icon

Иконка явления. Отображается пользователю когда требуется показать явление на экране. Например, иконка явления отображается в списке приложений. Иконка часто используется одновременно с заголовком явления. (смотрите атрибуте android:label)

Атрибут должен содержать ссылку на ресурс типа drawable с изображением. Если иконка для явления не установлена, будет использована иконка, указанная в атрибуте android:icon элемента <application>.

Иконка, указанная в этом атрибуте, является также иконкой по умолчанию для всех фильтров намерений (смотрите элемент <intent-filter>).

android:label

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

Если атрибут не установлен, будет использоваться значение атрибута label элемента <application>.

Заголовок, указанный в атрибуте, является также заголовком по умолчанию для всех фильтров намерений (смотрите элемент <intent-filter>).

Атрибут должен содержать ссылку на строковый ресурс, это поможет локализовать приложение. Однако во время разработки временно можно установить в качестве значения простую строку.

android:launchMode

Указывает как явление должно быть запущено. Есть четыре режима работы вместе с флагами (константы FLAG_ACTIVITY_*) в объекте Intent, которые определяют, что должно произойти, когда явление вызвано из намерения:

"standard"
"singleTop"
"singleTask"
"singleInstance"

Режим по умолчанию "standard".

Как показано в таблице ниже, режимы делятся на две группы, "standard" и "singleTop" в одной группе, "singleTask" и "singleInstance" в другой. Явления с режимами первой группы могут быть создано несколько раз. Экземпляры могут принадлежать любой задаче и находиться в любом месте стека. Обычно они запускаются в той же задаче, из которой вызван метод startActivity() (только если намерение не содержит флаг FLAG_ACTIVITY_NEW_TASK, в этом случае будет выбрана другая задача).

Напротив, явления в режимах "singleTask" или "singleInstance" могут только начинать задачу. Они всегда в корне стека. Кроме того, устройство может содержать только один экземпляр явления и в то же время только одну задачу.

Режимы "standard" и "singleTop" отличаются друг от друга только в одном отношении: каждый раз при отправке нового намерения для явления в режиме "standard", создается новый экземпляр явления для обработки намерения. Каждый экземпляр обрабатывает единственное намерение. И так же, может быть создан новый экземпляр явления в режиме "singleTop" для обработки намерения. Однако, если в задаче уже существует экземпляр явления, который находится в вершине стека, он вернет объект Intent в метод onNewIntent(); новый экземпляр не создается. При других обстоятельствах, например, если существующий экземпляр явления "singleTop" содержится в задаче, но находится не в вершине стека, или находится в вершине стека, но другой задачи – новый экземпляр будет создан и помещен в стек.

Также, если вы вернулись “назад” к родительскому явлению в текущем стеке, поведение зависит от режима запуска родительского явления. Если оно имеет режим singleTop (или намерение включает флаг FLAG_ACTIVITY_CLEAR_TOP), родитель поместится в вершину стека, и его состояние сохраняется. Объект Intent, используемый при навигации будет передан в родительское явление в метод onNewIntent(). Если родительское явление имеет режим standard (и намерение не включает флаг FLAG_ACTIVITY_CLEAR_TOP), текущее явление и его родитель будут вытолкнуты из стека, и будет создан новый экземпляр родителя для получения намерения.

Режимы "singleTask" и "singleInstance" тоже имеют всего одно отличие: явление в режиме singleTask разрешает другим явлениям быть частью его задачи. Оно всегда выполняется в корне задачи, но другие явления (обязательно standard или singleTop) могут быть также запущены в этой задаче. singleInstance напротив

не допускает, чтобы другие явления были частью его задачи. Это касается только явлений в задаче. Если запускается другое явление, оно присваивается другой задаче – как если бы был установлен флаг FLAG_ACTIVITY_NEW_TASK в объекте Intent.

Случаи использования Режим Несколько экземпляров? Комментарий
Нормальный запуск для большинства явлений standard Да По умолчанию. Система всегда создает новый экземпляр явления в задаче и направляет намерение в него.
singleTop условно Если экземпляр явления уже существует, в вершине стека задачи, система направляет намерение в него с помощью метода onNewIntent(), а не создает новый экземпляр.
Специализированный запуск (не рекомендуется для общего пользования). singleTask Нет Система создает явление в корне задачи и направляет в него намерение. Однако, если экземпляр явления уже существует, система направит намерение в него с помощью метода onNewIntent().
singleInstance Нет Подобно режиму singleTask, за исключением того, что система не запускает другие явления в задаче. Явление всегда одно и является единственным членом задачи.

Как показано в таблице выше, standard это режим по умолчанию для большинства типов явлений. SingleTop также распространен и удобен для запуска многих явлений. Остальные два режима singleTask и singleInstanceне подходят для большинства задач, поскольку они приводят к модели взаимодействия, которая может быть незнакома пользователям и отличается от большинства других приложений.

Несмотря на режим запуска, который вы выберите, проверьте корректность работы явлений во время запуска и при возвращении к нему, в том числе используя кнопку “назад”.

Подробная информация содержится в разделе Задачи и стек.

android:maxRecents
Максимальное число задач явления в списке последних задач. Когда число задач достигает указанного значения, система удаляет наиболее старые экземпляры из списка. Значения могут быть от 1 до 50 (25 для устройств с небольшим количеством памяти, 0 – некорректное значение). Значение должно быть целочисленным. По умолчанию равно 16.
android:multiprocess

Указывает, может ли экземпляр явления работать в процессе компонента, который его запустил. true если может, false если нет. По умолчанию false.

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

android:name

Имя класса (подкласс Activity), который реализует данное явление. Значение атрибута должно содержать полное имя, включая название пакета (например, com.example.project.ExtracurricularActivity). Тем не менее, в качестве сокращения, если первый символ названия точка (например, .ExtracurricularActivity), к нему будет добавлено имя пакета, указанное в элементе <manifest>

После публикации приложения, вы не должны менять значение этого атрибута (если только не установили атрибуте android:exported="false").

Атрибут не имеет значения по умолчанию и имя должно быть явно указано.

android:noHistory

Указывает должно ли явление удалять из стека и завершаться (вызывать метод finish()), когда пользователь покидает его и оно больше не видимо на экране. true если должно завершаться, false если нет. По умолчанию false.

Значение true означает, что явление “не оставляет след в истории”. То есть явление не остается в стеке и пользователь не сможет к нему вернуться. Если вы запускаете из такого явления другое явление для получения результата, метод onActivityResult() никогда не будет вызван!

Атрибут добавлен в API 3.

android:parentActivityName

Имя класса логического родителя явления. Значение атрибута должно соответствовать имени класса, указанному в атрибуте android:name соответствующего элемента <activity>.

Система использует данный атрибут, чтобы значит какое явление должно быть запущено, если пользователь нажмет кнопку “назад”, а также для синтеза стека явлений с помощью TaskStackBuilder.

Для поддержки API 4 – 16, вы можете также объявить родителя с помощью элемента <meta-data>, который предоставляет значение "android.support.PARENT_ACTIVITY". Например:

Атрибут добавлен в API 16.

android:permission

Название разрешения, которое должен иметь клиент для запуска явления или заставить его реагировать на намерения. Если компонент, вызывающий методы startActivity() или startActivityForResult() не имеет указанного разрешения, намерение не будет доставлено в явление.

Если атрибут не установлен, применяется разрешение элемента <application>. Если атрибут не установлен в обоих элементах, явление не защищено разрешением.

Подробнее в разделах Разрешения и Безопасность и разрешения.

android:process

Имя процесса, в котором явление должно быть запущено. Как правило, все компоненты приложения запускаются в процессе по умолчанию, созданным для приложения и задавать этот атрибут не требуется. Но если необходимо, вы можете задать другое имя процесса, что позволит распределить компоненты вашего приложения между несколькими процессами.

Если имя, указанное в атрибуте начинается с двоеточия “:”, новый процесс, частный для приложения, создается при необходимости и явления работают в нем. Если имя процесса начинается с маленькой буквы, явление будет запущено в глобальном процессе с указанным именем, при условии, что оно имеет разрешение. Это позволяет компонентам различных приложений использовать общий процесс, снижая расход ресурсов.

С помощью атрибута process элемента <application> можно задать имя процесса по умолчанию для всех компонентов приложения.

android:relinquishTaskIdentity

Указывает должно ли явление освобождать идентификатор задачи для вышестоящих явлений в стеке. Задача, в которой корневое явление имеет данный атрибут со значением true, заменяет базовое намерение на намерение следующего явления в задаче. Если атрибут следующего явления также равен true, процесс будет продолжаться до тех пор, пока не встретится явление, атрибут которого равен false. Значение по умолчанию false.

Установка атрибута в значение true также разрешает использовать ActivityManager.TaskDescription для изменения заголовка, цвета и иконки в списке последних приложений.

android:screenOrientation

Ориентация дисплея устройства для явления. Возможные значения приведены в таблице ниже.

unspecified Значение по умолчанию. Система самостоятельно выбирает ориентацию, поэтому может отличать от устройства к устройству.
behind Такая же ориентация, как у явления, находящимся под ним в стеке.
landscape Альбомная(ширина больше высоты)
portrait Портретная (высота больше ширины)
reverseLandscape Альбомная, но в обратном направлении. Добавлено в API 9.
reversePortrait Потретная, но в обратном направлении. Добавлено в API 9.
sensorLandscape Альбомная, может быть нормальной или обращенной в зависимости от датчика устройства. Добавлено в API 9.
sensorPortrait Портретная, может быть нормальной или обращенной в зависимости от датчика устройства. Добавлено в API 9.
userLandscape Альбомная, может быть нормальной или обращенной в зависимости от датчика устройства и его пользовательских настроек. Если пользователь заблокировал ориентацию на основе сенсора, ведет себя как landscape, иначе как sensorLandscape. Добавлена в API 18.
userPortrait Портретная, может быть нормальной или обращенной в зависимости от датчика устройства и его пользовательских настроек. Если пользователь заблокировал ориентацию на основе сенсора, ведет себя как portrait, иначе как sensorPortrait. Добавлена в API 18.
sensor Ориентация задается датчиком положения и зависит от того, как пользователь держит устройство. Меняется, если пользователь поворачивает устройство. Некоторые устройства не поддерживают все четыре возможные ориентации. Для разрешения четырех направлений, используйте fullSensor.
fullSensor Ориентация задается датчиком положения для всех четырех направлений. Работает также как sensor, но позволяет использовать четыре положения, даже если устройства не поддерживают такой режим. Добавлено в API 9.
nosensor Ориентация задается без использования физического датчика положения. Датчик игнорируется, поэтому изображение не будет вращаться при повороте устройства. Кроме этой особенности, система выбирает ориентацию также как в случае unspecified.
user Текущая ориентация, выбранная пользователем.
fullUser Если пользователь заблокировал сенсор, ведет себя также как user, иначе ведет себя как fullSensor и разрешает все 4 положения экрана. Добавлено в API 18.
locked Блокирует ориентацию в текущем положении, каким бы оно ни было. Добавлено в API 18.

Примечание: когда вы используете одно из альбомных или портретных значений, это считается жестким требованием к ориентации, в котором явление запускается. Таким образом, значение, которое вы укажете, позволяет Google Play допускать установку только на устройства, которые такую ориентацию поддерживают. Например, если вы укажете landscape,reverseLandscape или sensorLandscape, приложение будет доступно только для устройств с альбомной ориентацией. Однако вы также должны явно указывать в элементе <uses-feature>, что приложение требует альбомную или портретную ориентацию. Например: <uses-feature android:name="android.hardware.screen.portrait"/>. Помните, что такую фильтрацию обеспечивает только сервис Google Play (и другие сервисы, которые его поддерживают), и сама платформа Android не контролирует, можно ли установить приложение, если устройство не поддерживает некоторые ориентации.

android:stateNotNeeded

Указывает может ли явление быть уничтожено и перезапущено без сохранения состояния. true – если может, false – если требуется ссылка на предыдущее состояние. Значение по умолчанию false.

Как правило, перед отключением явление сохраняет ресурсы с помощью метода onSaveInstanceState(). Метод сохраняет текущее состояние в объект типа Bundle, который при перезапуске явления передается в метод onCreate(). Если значение атрибута равно true, метод onSaveInstanceState() может быть не вызван и в метод onCreate() будет передано значение null вместо объекта Bundle – также как при первоначальном запуске явления.

Установка атрибута в значение true, гарантирует, что явление может быть перезапущено без остаточного состояния.

android:taskAffinity

Задача, с которой явление имеет родство. Явления с таким же родством концептуально относятся к той же задаче (к тому же приложению, с точки зрения пользователя). Родство задачи определяется значением родства его корневого явления.

Родство определяет две вещи – задачу, в которую перемещается явление (смотрите атрибут allowTaskReparenting) и задачу, в которой будет находиться явление, если оно запущено с флагом FLAG_ACTIVITY_NEW_TASK.

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

Если этот атрибут не установлен, явление наследует родство приложения (смотрите элемент <application>). Имя родства по умолчанию для приложения равно имени пакета, установленного в элементе <manifest>.

android:theme

Ссылка на ресурс стиля, который описывает тему для всего явления. Этот атрибут автоматически устанавливает контекст явления для использования темы (смотрите setTheme()), а также может быть причиной анимации перед запуском явления.

Если атрибут не установлен, явление наследует тему от приложения (смотрите элемент <application>). Если тема также не установлена для приложения, будет использоваться тема по умолчанию. Подробная информация в разделе Стили и Темы.

android:uiOptions

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

Может принимать одно из значений, приведенных в таблице:

Значение Описание
none Нет расширенных опций. Это значение по умолчанию.
splitActionBarWhenNarrow Добавляет панель внизу экрана для отображения пунктов панели инструментов, если горизонтальное пространство ограничено (например в портретной ориентации на смартфонах). Вместо небольшого числа элементов на верхней панели инструментов, панель делится на верхнюю секцию навигации и нижнюю секцию для кнопок действий. Это гарантирует, что будет достаточно места не только для кнопок, но и для навигации и названия явления. Пункты меню не делятся между двумя панелями, они всегда находятся вместе.

Подробную информацию смотрите в разделе Панель инструментов.

Атрибут добавлен в API 14.

android:windowSoftInputMode

Указывает как окно явления взаимодействует с окном, содержащим программную клавиатуру. Значение атрибута влияет на две вещи:

  • Состояние программной клавиатуры – должна ли она быть скрыта или видима, когда явление получает фокус пользователя.
  • Регулировка окна явления – должно ли оно становиться меньше, чтобы оставить место для клавиатуры, или панорамировать содержимое, чтобы текущий фокус был виден, когда часть окна скрыта под клавиатурой.

Атрибут может иметь одно из перечисленных в таблице значений, или сочетание одного значения "state..." с одним значением "adjust...". Установка нескольких значений одной группы имеет непредсказуемый результат. Отдельные значения разделяются вертикальной чертой “|”. Например:

Значения, установленные здесь (кроме stateUnspecified и adjustUnspecified) переопределяют значения темы.

Значение Описание
stateUnspecified Значение для программной клавиатуры (показать или скрыть) не установлено. Система установит значение на основе темы. Это значение по умолчанию.
stateUnchanged Программная клавиатура хранит предыдущее состояние, когда явление выходит на передний план.
stateHidden Программная клавиатура скрыта, когда пользователь запускает явление (когда явно запускает какое-либо явление, а не возвращается к нему, например, при закрытии предыдущего или при нажатии кнопки “назад”.)
stateAlwaysHidden Программная клавиатура скрыта всегда, когда главное окно владеет фокусом.
stateVisible Программная клавиатура видима, если пользователь запускает явление.
stateAlwaysVisible Программная клавиатура становится видимой, когда пользователь запускает явление (когда явно запускает какое-либо явление, а не возвращается к нему, например, при закрытии предыдущего или при нажатии кнопки “назад”.)
adjustUnspecified Не указано, должно ли окно явления менять размер, чтобы освободить место для клавиатуры или панорамировать содержимое, чтобы сделать текущий фокус видимым на экране. Система автоматически выбирает один из режимов, в зависимости от того, имеет ли окно компоненты, которые могут прокручивать его содержимое. Если такие компоненты есть, окно будет уменьшено, исходя из того, что благодаря прокрутке можно увидеть все содержимое и на маленьком участке экрана. Это значение по умолчанию для основного окна.
adjustResize Основное окно всегда уменьшается, чтобы освободить место для клавиатуры.
adjustPan Окно не уменьшается, чтобы освободить место для клавиатуры. Вместо этого содержимое автоматически панорамируется, чтобы пользователи видели, что они печатают. Как правило это значение менее желательно, чем изменение размера окна, поскольку пользователю может понадобиться закрыть клавиатуру, чтобы добраться до скрытых элементов окна.
Атрибут добавлен в API 3.
ДОБАВЛЕНО:
Уровень API 1 для всех атрибутов, кроме noHistory и windowSoftInputMode, которые были добавлены в API 3.
СМОТРИТЕ ТАКЖЕ:
<application>
<activity-alias>

Добавить комментарий