Что можно указать у Activity в AndroidManifest.xml
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Основные атрибуты Activity в AndroidManifest.xml
При объявлении Activity в AndroidManifest.xml разработчик может указать ряд атрибутов, которые определяют поведение, внешний вид и взаимодействие компонента с системой Android. Эти атрибуты задаются внутри тега <activity> и являются ключевыми для корректной работы приложения.
Обязательные и базовые атрибуты
-
android:name(обязательный): Указывает полное имя класса Activity (например,com.example.MainActivity). Можно использовать сокращённую форму.MainActivity, если класс находится в базовом пакете приложения.<activity android:name=".MainActivity" /> -
android:exported(обязательный с Android 12+): Определяет, могут ли другие приложения запускать Activity. Значениеtrueразрешает внешний доступ,falseограничивает запуск только своим приложением. Для Activity с intent-filter по умолчаниюtrue.<activity android:name=".MainActivity" android:exported="false" />
Атрибуты для конфигурации запуска и навигации
-
android:launchMode: Задает режим запуска Activity (например,standard,singleTop,singleTask,singleInstance). Влияет на создание новых экземпляров и управление стеком задач.<activity android:name=".DetailActivity" android:launchMode="singleTop" /> -
android:screenOrientation: Фиксирует ориентацию экрана (portrait,landscape,sensorи др.). -
android:configChanges: Указывает, какие изменения конфигурации (например, поворот экрана) Activity будет обрабатывать самостоятельно, без пересоздания.<activity android:name=".CameraActivity" android:screenOrientation="portrait" android:configChanges="orientation|screenSize" />
Атрибуты для темы и внешнего вида
android:theme: Применяет тему к Activity (например,@style/Theme.AppCompat.Light.NoActionBar).android:windowSoftInputMode: Управляет поведением клавиатуры при её появлении (например,adjustResizeдля изменения размера макета).<activity android:name=".ChatActivity" android:theme="@style/Theme.AppCompat.Dialog" android:windowSoftInputMode="adjustResize" />
Атрибуты для безопасности и разрешений
android:permission: Требует определённое разрешение для запуска Activity.android:directBootAware(с API 24): Позволяет Activity работать в режиме Direct Boot до разблокировки устройства.
Intent-filter и роль Activity
<intent-filter>: Определяет, как Activity может быть запущена (например, как главный экран или для обработки определённых данных). Включает:<action>(например,android.intent.action.MAIN).<category>(например,android.intent.category.LAUNCHER).<data>для указания типов данных (URI, MIME-типы).
<activity android:name=".MainActivity" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
Дополнительные атрибуты
android:taskAffinity: Группирует Activity в отдельные задачи.android:allowTaskReparenting: Позволяет Activity переходить между задачами.android:excludeFromRecents: Исключает задачу из списка недавних приложений.android:finishOnTaskLaunch: Автоматически завершает Activity при перезапуске задачи.
Пример комплексного объявления
<activity
android:name=".PaymentActivity"
android:exported="false"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:theme="@style/Theme.AppCompat.Light"
android:windowSoftInputMode="stateHidden|adjustPan"
android:configChanges="keyboardHidden|orientation|screenSize">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="myapp" android:host="payment" />
</intent-filter>
</activity>
Правильная настройка этих атрибутов критична для безопасности, производительности и пользовательского опыта. Например, некорректный android:exported может привести к уязвимостям, а неправильный launchMode — к неожиданному поведению навигации. Всегда тестируйте конфигурации на реальных устройствах и учитывайте рекомендации Android Developers.