Activity е един от основните компоненти на едно Android приложение и обикновено представя отделен екран с потребителски интерфейс, като екран за вход, списък със съобщения или страница с настройки. Всяка activity е клас, който наследява Activity или най-често AppCompatActivity или ComponentActivity, и трябва да бъде регистрирана в AndroidManifest.xml на приложението. Когато потребителят отвори приложението от началния екран, системата стартира activity, посочена като входна точка на приложението, и оттам приложението може да отваря други activities чрез intents.
Една activity има жизнен цикъл, който се контролира от системата Android. Чрез методи като onCreate(), onStart(), onResume(), onPause(), onStop() и onDestroy() приложението получава известие, когато екранът бъде създаден, стане видим, загуби фокус или бъде затворен, така че ресурсите да могат да се освободят и данните да се запазят в точния момент. Много съвременни приложения използват само една или няколко activities и изграждат отделните екрани с fragments или Jetpack Compose, но activity остава елементът, който свързва потребителския интерфейс на приложението със системата.
Activity в разработката на приложения означава отделен екран в Android приложение, който действа като интерактивен прозорец за потребителя. Всяка activity отговаря за обработката на взаимодействията с потребителя и за представянето на данни, което позволява на разработчиците да създават динамични и ангажиращи потребителски изживявания. Activities могат да работят заедно, като си предават данни, което осигурява безпроблемна навигация и функционалност в приложението.
More about Activity
Activity е централен компонент в разработката на Android приложения, който представя отделен екран с потребителски интерфейс. Всяка activity е самостоятелна единица, която обработва взаимодействията с потребителя и представя данни, което позволява на разработчиците да създават динамични и ангажиращи потребителски изживявания. Activities са основни градивни елементи на Android приложенията и действат като входни точки, чрез които потребителите взаимодействат с функциите на приложението.
Технически една activity е подклас на класа Activity в Android SDK и работи, като обработва методите на жизнения цикъл, които контролират как activity се създава, стартира, спира и унищожава. Когато една activity бъде стартирана, тя преминава през поредица от етапи на жизнения цикъл, които позволяват на разработчиците да управляват ресурсите ефективно и да реагират на взаимодействията с потребителя. Те включват методи като onCreate(), onStart(), onResume(), onPause(), onStop() и onDestroy(), всеки от които играе роля за осигуряването на плавно и отзивчиво потребителско изживяване.
Activities могат да се представят по различни начини, всеки от които поддържа различни видове взаимодействие:
На цял екран: Тук activity действа като самостоятелен екран, който обработва взаимодействията с потребителя и представя данни. Това е най-често срещаната форма, при която потребителят навигира между различните екрани в приложението.
Като диалогов прозорец: С тема за диалогов прозорец activity се представя като диалогов прозорец, който се показва над текущия екран. Това понякога се използва за показване на важни съобщения или за искане на въвеждане от потребителя, без да се напуска текущият контекст, въпреки че диалоговите прозорци по-често се реализират с dialog fragments или Compose.
Потапящ режим: Activity поема пълен контрол над екрана и скрива системните ленти, като лентата на състоянието и лентата за навигация, за да осигури потапящо изживяване. Това е идеално за игри или възпроизвеждане на медийно съдържание, при които фокусът върху съдържанието е от решаващо значение.
Една от най-големите силни страни на activities е способността им да обработват сложни взаимодействия с потребителя и навигационни модели. Моделът на activities в Android поддържа редица навигационни модели, като back stack, който позволява на потребителите да се връщат към предишни екрани, създавайки интуитивно и предвидимо потребителско изживяване. Освен това activities могат да споделят данни и да комуникират помежду си чрез intents, което позволява безпроблемна интеграция между различните части на приложението.
Activities са проектирани и да бъдат ефективни по отношение на ресурсите. Методите на жизнения цикъл в Android позволяват на разработчиците да оптимизират потреблението на ресурси, като освобождават ненужните ресурси, когато дадена activity не е видима, и ги зареждат отново, когато тя се върне на преден план. Това помага да се гарантира, че приложенията остават отзивчиви и ефективни дори на устройства с ограничени ресурси.
На практика activities оформиха начина, по който се проектират и разработват Android приложенията. Те осигуряват структуриран подход към обработката на взаимодействията с потребителя и навигационните модели, което позволява на разработчиците да създават богати и ангажиращи потребителски изживявания. Activities са в основата на много популярни приложения, в които се използват за организиране на съдържанието, обработка на въведеното от потребителя и навигация между различните функции.
В обобщение, activities са съществена част от разработката на Android приложения, която съчетава гъвкавост, ефективност и лекота на използване в решение, позволяващо на разработчиците да създават мощни и интуитивни приложения. Способността им да обработват сложни жизнени цикли и навигационни модели ги прави централен инструмент в съвременната разработка на приложения, при която потребителското изживяване и ефективното управление на ресурсите са от решаващо значение.
Frequently asked questions about Activity
Какво е activity в Android?
Activity е един от основните градивни елементи на едно Android приложение. Обикновено тя представя отделен екран с потребителски интерфейс, като екран за вход, списък със съобщения или страница с настройки. Потребителят взаимодейства с приложението чрез неговите activities.
Всяка activity е клас, който наследява Activity или по-често AppCompatActivity или ComponentActivity, и трябва да бъде декларирана във файла AndroidManifest.xml. Една activity се маркира като входна точка, така че системата да знае какво да отвори, когато потребителят докосне иконата на приложението. Съвременните приложения често имат малко activities и използват fragments или Jetpack Compose за показване на различните екрани.
Как работи жизненият цикъл на една activity?
Една activity преминава през поредица от състояния от момента на създаването си до затварянето си. Android извиква конкретни методи, когато състоянието се промени. onCreate се извиква, когато activity бъде създадена, и тук се настройва потребителският интерфейс. onStart и onResume се извикват, когато тя стане видима и готова за използване.
Когато потребителят премине към друго приложение или екран, се извикват onPause и onStop, а когато activity бъде затворена напълно, се извиква onDestroy. Като поставя кода в правилните методи, приложението може например да спре видео, когато то не е видимо, и да запази данни, преди да бъде затворено. Неправилната обработка може да доведе до грешки и до разхищаване на ресурси.
Как едно приложение превключва между activities?
Приложението превключва от една activity към друга чрез intent. Intent описва коя activity трябва да бъде отворена и може да съдържа данни, като ID на продукт, който новият екран трябва да покаже. Intent се изпраща с метода startActivity.
Новата activity се поставя на върха на стек, известен като back stack. Когато потребителят натисне „Назад“, най-горната activity се затваря и предишната се показва отново. Ако новият екран трябва да върне резултат, като избрано изображение, се използва Activity Result API. Много съвременни приложения обаче използват една-единствена activity и компонента Navigation, за да превключват между екраните в нея.
Какво се случва с една activity, когато екранът се завърти?
Когато потребителят завърти телефона, конфигурацията се променя и по подразбиране Android унищожава текущата activity и я създава отново. Това позволява да се зареди различно оформление, подходящо за новата ориентация, но означава също, че данните, съхранявани само в activity, могат да бъдат загубени.
За да се избегне това, обикновено се използва ViewModel, който оцелява при промени в конфигурацията и запазва данни като заредените списъци. Малки количества състояние, като текст в поле или позиция на превъртане, могат да се запазят с onSaveInstanceState или с rememberSaveable в Jetpack Compose. Същото важи, когато се промени езикът, темата или размерът на екрана.
Каква е разликата между activity и fragment?
Activity е самостоятелен компонент, който е известен на системата и е деклариран в AndroidManifest.xml. Тя действа като контейнер за потребителския интерфейс на приложението и може да бъде стартирана директно, например от известие или от друго приложение.
Fragment е по-малка част от потребителския интерфейс за многократна употреба, която винаги живее в рамките на дадена activity. В една и съща activity могат да се показват няколко fragments, като списък и изглед с подробности един до друг на таблет. Fragments имат собствен жизнен цикъл, който е обвързан с activity, в която се намират. Много приложения използват малко activities и много fragments или Compose екрани.
Какво представляват launch modes на една activity?
Launch modes определят как една нова activity се поставя спрямо съществуващите, когато бъде стартирана. По подразбиране всеки път се създава нова инстанция, дори ако същата activity вече е отворена.
При singleTop activity се използва повторно, ако вече е на върха на стека, вместо да се създава нова. При singleTask съществува само една инстанция, а activities над нея се премахват, когато тя бъде отворена отново. singleInstance поставя activity в собствен task, а от Android 12 насам singleInstancePerTask позволява по една инстанция на task. Launch modes се посочват в AndroidManifest.xml или с флагове в intent и се използват например за избягване на дубликати, когато приложението се отваря от известие.
Activity for dummies
Activity в едно приложение е като отделен екран на мобилния телефон. Представете си я като страница в книга. Когато се отвори приложение, се появява екран, на който може да се направи нещо конкретно, като четене на новини, изпращане на съобщение или разглеждане на снимки. Всеки от тези екрани е „activity“. Преминаването от четене на новини към изпращане на съобщение означава превключване от една activity към друга. Това е начинът, по който приложенията организират различните функции и информация, така че да е лесно да се навигира в тях и да се използват.