Hva er en activity, og hvordan fungerer den?

En activity er en av de grunnleggende komponentene i en Android-app og representerer typisk én enkelt skjerm med et brukergrensesnitt, som en innloggingsskjerm, en liste over meldinger eller en innstillingsside. Hver activity er en klasse som arver fra Activity eller, oftest, fra AppCompatActivity eller ComponentActivity, og den må registreres i appens AndroidManifest.xml. Når brukeren åpner appen fra startskjermen, starter systemet den activityen som er angitt som appens inngangspunkt, og derfra kan appen åpne andre activities ved hjelp av intents.

En activity har en livssyklus som styres av Android-systemet. Gjennom metoder som onCreate(), onStart(), onResume(), onPause(), onStop() og onDestroy() får appen beskjed når skjermen opprettes, blir synlig, mister fokus eller lukkes, slik at ressurser kan frigjøres og data lagres på riktig tidspunkt. Mange moderne apper bruker bare én eller noen få activities og bygger de enkelte skjermene med fragmenter eller Jetpack Compose, men activityen er fortsatt elementet som kobler appens brukergrensesnitt til systemet.

En activity i apputvikling viser til én enkelt skjerm i en Android-applikasjon som fungerer som et interaktivt vindu for brukeren. Hver activity er ansvarlig for å håndtere brukerinteraksjoner og presentere data, noe som gjør det mulig for utviklere å skape dynamiske og engasjerende brukeropplevelser. Activities kan samarbeide ved å sende data mellom hverandre, noe som sikrer sømløs navigasjon og funksjonalitet i appen.

Mer om Activity

En activity er en sentral komponent i utviklingen av Android-applikasjoner og representerer én enkelt skjerm med et brukergrensesnitt. Hver activity er en selvstendig enhet som håndterer brukerinteraksjoner og presenterer data, noe som gjør det mulig for utviklere å skape dynamiske og engasjerende brukeropplevelser. Activities er grunnleggende byggesteiner i Android-apper, og de fungerer som inngangspunkter der brukerne samhandler med appens funksjoner.

Teknisk sett er en activity en underklasse av klassen Activity i Android SDK, og den fungerer ved å håndtere livssyklusmetoder som styrer hvordan activityen opprettes, startes, stoppes og destrueres. Når en activity startes, går den gjennom en rekke livssyklusfaser som gjør det mulig for utviklere å håndtere ressurser effektivt og reagere på brukerinteraksjoner. Disse omfatter metoder som onCreate(), onStart(), onResume(), onPause(), onStop() og onDestroy(), som hver spiller en rolle i å sikre en jevn og responsiv brukeropplevelse.

Activities kan presenteres på ulike måter, som hver støtter ulike typer interaksjon:

  1. Fullskjerm: Her fungerer activityen som en selvstendig skjerm som håndterer brukerinteraksjoner og presenterer data. Dette er den vanligste formen, der brukeren navigerer mellom ulike skjermer i en app.

  2. Som dialog: Med et dialogtema presenteres activityen som en dialogboks som svever over den gjeldende skjermen. Dette brukes noen ganger til å vise viktige meldinger eller be om input fra brukeren uten å forlate den gjeldende konteksten, selv om dialoger oftere implementeres med dialogfragmenter eller Compose.

  3. Oppslukende modus (immersive mode): Activityen tar full kontroll over skjermen og skjuler systemlinjer som statuslinjen og navigasjonslinjen for å gi en oppslukende opplevelse. Dette er ideelt for spill eller medieavspilling, der fokus på innholdet er avgjørende.

En av de største styrkene ved activities er evnen til å håndtere komplekse brukerinteraksjoner og navigasjonsmønstre. Androids activity-modell støtter en rekke navigasjonsmønstre, som tilbakestakken (back stack), som lar brukerne navigere tilbake til tidligere skjermer og skaper en intuitiv og forutsigbar brukeropplevelse. I tillegg kan activities dele data og kommunisere med hverandre ved hjelp av intents, noe som muliggjør sømløs integrasjon mellom ulike deler av en app.

Activities er også utformet for å være ressurseffektive. Androids livssyklusmetoder gjør det mulig for utviklere å optimalisere ressursforbruket ved å frigjøre unødvendige ressurser når en activity ikke er synlig, og laste dem inn på nytt når den kommer tilbake i forgrunnen. Dette bidrar til at apper forblir responsive og effektive, også på enheter med begrensede ressurser.

I praksis har activities formet måten Android-apper designes og utvikles på. De gir en strukturert tilnærming til håndtering av brukerinteraksjoner og navigasjonsmønstre, noe som gjør det mulig for utviklere å skape rike og engasjerende brukeropplevelser. Activities er kjernen i mange populære apper, der de brukes til å organisere innhold, håndtere brukerinput og navigere mellom ulike funksjoner.

Oppsummert er activities en essensiell del av Android-utvikling som kombinerer fleksibilitet, effektivitet og brukervennlighet i en løsning som gjør det mulig for utviklere å lage kraftige og intuitive apper. Evnen til å håndtere komplekse livssykluser og navigasjonsmønstre gjør dem til et sentralt verktøy i moderne apputvikling, der brukeropplevelsen og effektiv ressursforvaltning er avgjørende.

Ofte stilte spørsmål om Activity

Hva er en activity i Android?

En activity er en av de grunnleggende byggesteinene i en Android-app. Den representerer typisk én enkelt skjerm med et brukergrensesnitt, som en innloggingsskjerm, en liste over meldinger eller en innstillingsside. Brukeren samhandler med appen gjennom dens activities.

Hver activity er en klasse som arver fra Activity eller, oftere, AppCompatActivity eller ComponentActivity, og den må deklareres i filen AndroidManifest.xml. Én activity markeres som inngangspunkt, slik at systemet vet hva som skal åpnes når brukeren trykker på appens ikon. Moderne apper har ofte få activities og bruker fragmenter eller Jetpack Compose til å vise ulike skjermer.

Hvordan fungerer livssyklusen til en activity?

En activity går gjennom en rekke tilstander fra den opprettes til den lukkes. Android kaller bestemte metoder når tilstanden endres. onCreate kalles når activityen opprettes, og det er her brukergrensesnittet settes opp. onStart og onResume kalles når den blir synlig og klar til bruk.

Når brukeren bytter til en annen app eller skjerm, kalles onPause og onStop, og når activityen lukkes helt, kalles onDestroy. Ved å plassere koden i de riktige metodene kan appen for eksempel stoppe en video når den ikke er synlig, og lagre data før den lukkes. Feil håndtering kan føre til feil og sløsing med ressurser.

Hvordan bytter en app mellom activities?

En app bytter fra én activity til en annen ved hjelp av en intent. En intent beskriver hvilken activity som skal åpnes, og kan inneholde data, som ID-en til et produkt den nye skjermen skal vise. Intenten sendes med metoden startActivity.

Den nye activityen legges øverst i en stakk som kalles tilbakestakken (back stack). Når brukeren trykker tilbake, lukkes den øverste activityen, og den forrige vises igjen. Hvis den nye skjermen skal returnere et resultat, som et valgt bilde, brukes Activity Result API. Mange moderne apper bruker imidlertid én enkelt activity og Navigation-komponenten til å bytte mellom skjermer i den.

Hva skjer med en activity når skjermen roteres?

Når brukeren roterer telefonen, endres konfigurasjonen, og som standard destruerer Android den gjeldende activityen og oppretter den på nytt. Dette gjør det mulig å laste inn et annet oppsett som passer til den nye retningen, men det betyr også at data som bare holdes i activityen, kan gå tapt.

For å unngå dette brukes typisk en ViewModel, som overlever konfigurasjonsendringer og beholder data som innlastede lister. Små mengder tilstand, som tekst i et felt eller en scrolleposisjon, kan lagres med onSaveInstanceState eller med rememberSaveable i Jetpack Compose. Det samme gjelder når språk, tema eller skjermstørrelse endres.

Hva er forskjellen mellom en activity og et fragment?

En activity er en selvstendig komponent som er kjent for systemet og deklarert i AndroidManifest.xml. Den fungerer som en beholder for appens brukergrensesnitt og kan startes direkte, for eksempel fra et varsel eller en annen app.

Et fragment er en mindre, gjenbrukbar del av brukergrensesnittet som alltid lever inne i en activity. Flere fragmenter kan vises i samme activity, som en liste og en detaljvisning side om side på et nettbrett. Fragmenter har sin egen livssyklus, som er knyttet til activityen som er vert for dem. Mange apper bruker få activities og mange fragmenter eller Compose-skjermer.

Hva er launch modes for en activity?

Launch modes avgjør hvordan en ny activity plasseres i forhold til eksisterende når den startes. Som standard opprettes en ny instans hver gang, selv om den samme activityen allerede er åpen.

Med singleTop gjenbrukes activityen hvis den allerede ligger øverst i stakken, i stedet for at en ny opprettes. Med singleTask finnes det bare én instans, og activities over den fjernes når den åpnes på nytt. singleInstance plasserer activityen i en egen oppgave (task), og siden Android 12 tillater singleInstancePerTask én instans per oppgave. Launch modes angis i AndroidManifest.xml eller med flagg på en intent og brukes for eksempel for å unngå duplikater når appen åpnes fra et varsel.

Activity for dummies

En activity i en app er som én enkelt skjerm på en mobiltelefon. Tenk på den som en side i en bok. Når en app åpnes, vises en skjerm der noe bestemt kan gjøres, som å lese nyheter, sende en melding eller se på bilder. Hver av disse skjermene er en «activity». Å bytte fra å lese nyheter til å sende en melding betyr å bytte fra én activity til en annen. Det er slik apper organiserer ulike funksjoner og informasjon, slik at de er enkle å navigere i og bruke.

Legg igjen en kommentar