O activity este una dintre componentele fundamentale ale unei aplicații Android și reprezintă de obicei un singur ecran cu interfață cu utilizatorul, precum un ecran de autentificare, o listă de mesaje sau o pagină de setări. Fiecare activity este o clasă care moștenește din Activity sau, cel mai adesea, din AppCompatActivity ori ComponentActivity și trebuie înregistrată în AndroidManifest.xml al aplicației. Când utilizatorul deschide aplicația de pe ecranul de pornire, sistemul pornește activity-ul specificat ca punct de intrare al aplicației, iar de acolo aplicația poate deschide alte activities cu ajutorul intenturilor.
O activity are un ciclu de viață controlat de sistemul Android. Prin metode precum onCreate(), onStart(), onResume(), onPause(), onStop() și onDestroy(), aplicația este notificată când ecranul este creat, devine vizibil, pierde focusul sau este închis, astfel încât resursele să poată fi eliberate și datele salvate la momentul potrivit. Multe aplicații moderne folosesc doar una sau câteva activities și construiesc ecranele individuale cu fragmente sau cu Jetpack Compose, dar activity-ul rămâne elementul care conectează interfața cu utilizatorul a aplicației la sistem.
O activity în dezvoltarea aplicațiilor se referă la un singur ecran dintr-o aplicație Android, care funcționează ca o fereastră interactivă pentru utilizator. Fiecare activity este responsabilă de gestionarea interacțiunilor utilizatorului și de prezentarea datelor, ceea ce le permite dezvoltatorilor să creeze experiențe ale utilizatorului dinamice și captivante. Activities pot colabora transmițându-și date unele altora, ceea ce asigură o navigare și o funcționalitate fără întreruperi în aplicație.
More about Activity
O activity este o componentă centrală în dezvoltarea aplicațiilor Android, care reprezintă un singur ecran cu interfață cu utilizatorul. Fiecare activity este o unitate de sine stătătoare care gestionează interacțiunile utilizatorului și prezintă date, ceea ce le permite dezvoltatorilor să creeze experiențe ale utilizatorului dinamice și captivante. Activities sunt elemente de bază fundamentale ale aplicațiilor Android și funcționează ca puncte de intrare prin care utilizatorii interacționează cu funcțiile aplicației.
Din punct de vedere tehnic, o activity este o subclasă a clasei Activity din Android SDK și funcționează prin gestionarea metodelor de ciclu de viață care controlează modul în care activity-ul este creat, pornit, oprit și distrus. Când o activity este pornită, trece printr-o serie de etape ale ciclului de viață care le permit dezvoltatorilor să gestioneze eficient resursele și să reacționeze la interacțiunile utilizatorului. Acestea includ metode precum onCreate(), onStart(), onResume(), onPause(), onStop() și onDestroy(), fiecare având un rol în asigurarea unei experiențe a utilizatorului fluide și receptive.
Activities pot fi prezentate în moduri diferite, fiecare sprijinind tipuri diferite de interacțiune:
Ecran complet: Aici, activity-ul funcționează ca un ecran independent care gestionează interacțiunile utilizatorului și prezintă date. Aceasta este forma cea mai comună, în care utilizatorul navighează între diferite ecrane ale unei aplicații.
Ca dialog: Cu o temă de dialog, activity-ul este prezentat ca o casetă de dialog care plutește deasupra ecranului curent. Acest lucru este folosit uneori pentru a afișa mesaje importante sau pentru a solicita input de la utilizator fără a părăsi contextul curent, deși dialogurile sunt implementate mai des cu dialog fragments sau Compose.
Modul imersiv: Activity-ul preia controlul complet asupra ecranului și ascunde barele de sistem, precum bara de stare și bara de navigare, pentru a oferi o experiență imersivă. Acest lucru este ideal pentru jocuri sau redarea media, unde concentrarea pe conținut este crucială.
Unul dintre cele mai mari puncte forte ale activities este capacitatea lor de a gestiona interacțiuni complexe ale utilizatorului și tipare de navigare. Modelul de activities al Android sprijină o serie de tipare de navigare, precum back stack, care le permite utilizatorilor să navigheze înapoi la ecranele anterioare, creând o experiență a utilizatorului intuitivă și previzibilă. În plus, activities pot partaja date și pot comunica între ele cu ajutorul intenturilor, ceea ce permite o integrare fără întreruperi între diferitele părți ale unei aplicații.
Activities sunt concepute și pentru a fi eficiente din punctul de vedere al resurselor. Metodele de ciclu de viață ale Android le permit dezvoltatorilor să optimizeze consumul de resurse prin eliberarea resurselor inutile atunci când o activity nu este vizibilă și reîncărcarea lor când revine în prim-plan. Acest lucru ajută la asigurarea faptului că aplicațiile rămân receptive și eficiente, chiar și pe dispozitivele cu resurse limitate.
În practică, activities au modelat modul în care sunt proiectate și dezvoltate aplicațiile Android. Ele oferă o abordare structurată a gestionării interacțiunilor utilizatorului și a tiparelor de navigare, ceea ce le permite dezvoltatorilor să creeze experiențe ale utilizatorului bogate și captivante. Activities stau la baza multor aplicații populare, unde sunt folosite pentru a organiza conținutul, a gestiona inputul utilizatorului și a naviga între diferite funcții.
În concluzie, activities sunt o parte esențială a dezvoltării Android, care combină flexibilitatea, eficiența și ușurința în utilizare într-o soluție ce le permite dezvoltatorilor să creeze aplicații puternice și intuitive. Capacitatea lor de a gestiona cicluri de viață complexe și tipare de navigare le face un instrument central în dezvoltarea modernă a aplicațiilor, unde experiența utilizatorului și gestionarea eficientă a resurselor sunt cruciale.
Frequently asked questions about Activity
Ce este o activity în Android?
O activity este unul dintre elementele de bază fundamentale ale unei aplicații Android. Reprezintă de obicei un singur ecran cu interfață cu utilizatorul, precum un ecran de autentificare, o listă de mesaje sau o pagină de setări. Utilizatorul interacționează cu aplicația prin activities ale acesteia.
Fiecare activity este o clasă care moștenește din Activity sau, mai des, din AppCompatActivity ori ComponentActivity și trebuie declarată în fișierul AndroidManifest.xml. O activity este marcată ca punct de intrare, astfel încât sistemul să știe ce să deschidă când utilizatorul atinge pictograma aplicației. Aplicațiile moderne au adesea puține activities și folosesc fragmente sau Jetpack Compose pentru a afișa diferite ecrane.
Cum funcționează ciclul de viață al unei activity?
O activity trece printr-o serie de stări din momentul în care este creată până când este închisă. Android apelează anumite metode atunci când starea se schimbă. onCreate este apelată când activity-ul este creat, iar aici este configurată interfața cu utilizatorul. onStart și onResume sunt apelate când devine vizibil și gata de utilizare.
Când utilizatorul trece la o altă aplicație sau la un alt ecran, sunt apelate onPause și onStop, iar când activity-ul este închis complet, este apelată onDestroy. Plasând codul în metodele potrivite, aplicația poate, de exemplu, să oprească un videoclip când nu este vizibil și să salveze datele înainte de a fi închisă. Gestionarea incorectă poate provoca erori și poate irosi resurse.
Cum trece o aplicație de la o activity la alta?
O aplicație trece de la o activity la alta cu ajutorul unui intent. Un intent descrie ce activity trebuie deschisă și poate conține date, precum ID-ul unui produs pe care noul ecran trebuie să îl afișeze. Intentul este trimis cu metoda startActivity.
Noua activity este plasată în vârful unei stive cunoscute sub numele de back stack. Când utilizatorul apasă înapoi, activity-ul din vârf este închis, iar cel anterior este afișat din nou. Dacă noul ecran trebuie să returneze un rezultat, precum o imagine selectată, se folosește Activity Result API. Multe aplicații moderne folosesc însă o singură activity și componenta Navigation pentru a trece între ecranele din interiorul acesteia.
Ce se întâmplă cu o activity când ecranul este rotit?
Când utilizatorul rotește telefonul, configurația se schimbă, iar în mod implicit Android distruge activity-ul curent și îl creează din nou. Acest lucru face posibilă încărcarea unui alt layout potrivit noii orientări, dar înseamnă și că datele păstrate doar în activity se pot pierde.
Pentru a evita acest lucru, se folosește de obicei un ViewModel, care supraviețuiește schimbărilor de configurație și păstrează date precum listele încărcate. Cantitățile mici de stare, precum textul dintr-un câmp sau poziția de derulare, pot fi salvate cu onSaveInstanceState sau cu rememberSaveable în Jetpack Compose. Același lucru se aplică atunci când se schimbă limba, tema sau dimensiunea ecranului.
Care este diferența dintre o activity și un fragment?
O activity este o componentă de sine stătătoare cunoscută de sistem și declarată în AndroidManifest.xml. Funcționează ca un container pentru interfața cu utilizatorul a aplicației și poate fi pornită direct, de exemplu dintr-o notificare sau dintr-o altă aplicație.
Un fragment este o parte mai mică și reutilizabilă a interfeței cu utilizatorul, care trăiește întotdeauna în interiorul unei activity. Mai multe fragmente pot fi afișate în aceeași activity, precum o listă și o vizualizare de detalii una lângă alta pe o tabletă. Fragmentele au propriul ciclu de viață, care este legat de activity-ul care le găzduiește. Multe aplicații folosesc puține activities și multe fragmente sau ecrane Compose.
Ce sunt launch modes pentru o activity?
Launch modes determină cum este plasată o activity nouă în raport cu cele existente atunci când este pornită. În mod implicit, este creată o instanță nouă de fiecare dată, chiar dacă aceeași activity este deja deschisă.
Cu singleTop, activity-ul este reutilizat dacă se află deja în vârful stivei, în loc să fie creat unul nou. Cu singleTask, există o singură instanță, iar activities de deasupra ei sunt eliminate când este deschisă din nou. singleInstance plasează activity-ul în propriul task, iar din Android 12, singleInstancePerTask permite o instanță per task. Launch modes sunt specificate în AndroidManifest.xml sau cu flaguri pe un intent și sunt folosite, de exemplu, pentru a evita duplicatele când aplicația este deschisă dintr-o notificare.
Activity for dummies
O activity într-o aplicație este ca un singur ecran pe un telefon mobil. Gândește-te la ea ca la o pagină dintr-o carte. Când este deschisă o aplicație, apare un ecran unde se poate face ceva anume, precum citirea știrilor, trimiterea unui mesaj sau privirea fotografiilor. Fiecare dintre aceste ecrane este o „activity”. Trecerea de la citirea știrilor la trimiterea unui mesaj înseamnă trecerea de la o activity la alta. Este modul în care aplicațiile organizează diferite funcții și informații, astfel încât să fie ușor de navigat și de folosit.