Android manifest activity exported

Файл манифеста AndroidManifest.xml

Файл манифеста AndroidManifest.xml предоставляет основную информацию о программе системе. Каждое приложение должно иметь свой файл AndroidManifest.xml. Редактировать файл манифеста можно вручную, изменяя XML-код или через визуальный редактор Manifest Editor (Редактор файла манифеста), который позволяет осуществлять визуальное и текстовое редактирование файла манифеста приложения.

Назначение файла

  • объявляет имя Java-пакета приложения, который служит уникальным идентификатором;
  • описывает компоненты приложения — деятельности, службы, приемники широковещательных намерений и контент-провайдеры, что позволяет вызывать классы, которые реализуют каждый из компонентов, и объявляет их намерения;
  • содержит список необходимых разрешений для обращения к защищенным частям API и взаимодействия с другими приложениями;
  • объявляет разрешения, которые сторонние приложения обязаны иметь для взаимодействия с компонентами данного приложения;
  • объявляет минимальный уровень API Android, необходимый для работы приложения;
  • перечисляет связанные библиотеки;

Общая структура манифеста

Файл манифеста инкапсулирует всю архитектуру Android-приложения, его функциональные возможности и конфигурацию. В процессе разработки приложения вам придется постоянно редактировать данный файл, изменяя его структуру и дополняя новыми элементами и атрибутами.

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

Описание

Элемент является корневым элементом манифеста. По умолчанию Eclipse создает элемент с четырьмя атрибутами:

Атрибуты

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

android:name название разрешения android:label имя разрешения, отображаемое пользователю android:description описание разрешения android:icon значок разрешения android:permissionGroup определяет принадлежность к группе разрешений android:protectionLevel уровень защиты

Элемент запрашивает разрешение, которые приложению должны быть предоставлены системой для его нормального функционирования. Разрешения предоставляются во время установки приложения, а не во время его работы.

android:name имеет единственный атрибут с именем разрешения android:name. Это может быть разрешение, определенное в элементе

данного приложения, разрешение, определенное в другом приложении или одно из стандартных системных разрешений, например: android:name=»android.permission.CAMERA» или android:name=»»android.permission.READ_CONTACTS»

Наиболее распространенные разрешения

  • INTERNET — доступ к интернету
  • READ_CONTACTS — чтение (но не запись) данных из адресной книги пользователя
  • WRITE_CONTACTS — запись (но не чтение) данных из адресной книги пользователя
  • RECEIVE_SMS — обработка входящих SMS
  • ACCESS_COARSE_LOCATION — использование приблизительного определения местонахождения при помощи вышек сотовой связи или точек доступа Wi-Fi
  • ACCESS_FINE_LOCATION — точное определение местонахождения при помощи GPS

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

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

разрешения, так и объявленные в другом месте. Этот элемент не объявляет разрешение непосредственно, только категорию, в которую могут быть помещены разрешения. Разрешение можно поместить в группу, назначив имя группы в атрибуте permissionGroup элемента

Источник

Android manifest activity exported

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  Смета для ремонта андроид

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

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

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

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

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

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

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

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

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

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

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

Значение Описание
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» .

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

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

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

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

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

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

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

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

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

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

Читайте также:  Таймер для спорта android

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

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

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

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

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

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

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

Указывает как явление должно быть запущено. Есть четыре режима работы вместе с флагами (константы 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 , экземпляры явлений могут работать в разных процессах, что позволяет системе создавать их везде, где они используются (если есть соответствующее разрешение). Впрочем, практически не существует случаев, когда такое поведение является необходимым.

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

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

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

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

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

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

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

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

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

Читайте также:  Создать свой смайлик для whatsapp андроид

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

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

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

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

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

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

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

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 , приложение будет доступно только для устройств с альбомной ориентацией. Однако вы также должны явно указывать в элементе , что приложение требует альбомную или портретную ориентацию. Например: . Помните, что такую фильтрацию обеспечивает только сервис Google Play (и другие сервисы, которые его поддерживают), и сама платформа Android не контролирует, можно ли установить приложение, если устройство не поддерживает некоторые ориентации.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Оцените статью