Wat is een activity en hoe werkt die?

Een activity is een van de fundamentele componenten van een Android-app en vertegenwoordigt doorgaans één scherm met een gebruikersinterface, zoals een inlogscherm, een lijst met berichten of een instellingenpagina. Elke activity is een klasse die erft van Activity of, meestal, van AppCompatActivity of ComponentActivity, en moet worden geregistreerd in de AndroidManifest.xml van de app. Wanneer de gebruiker de app vanaf het startscherm opent, start het systeem de activity die als startpunt van de app is opgegeven, en van daaruit kan de app met behulp van intents andere activities openen.

Een activity heeft een levenscyclus die door het Android-systeem wordt bestuurd. Via methoden zoals onCreate(), onStart(), onResume(), onPause(), onStop() en onDestroy() krijgt de app een melding wanneer het scherm wordt aangemaakt, zichtbaar wordt, de focus verliest of wordt gesloten, zodat resources op het juiste moment kunnen worden vrijgegeven en gegevens kunnen worden opgeslagen. Veel moderne apps gebruiken maar één of enkele activities en bouwen de afzonderlijke schermen met fragments of Jetpack Compose, maar de activity blijft het element dat de gebruikersinterface van de app met het systeem verbindt.

Een activity verwijst bij app-ontwikkeling naar één scherm in een Android-applicatie dat fungeert als een interactief venster voor de gebruiker. Elke activity is verantwoordelijk voor het afhandelen van gebruikersinteracties en het presenteren van gegevens, waarmee ontwikkelaars dynamische en boeiende gebruikerservaringen kunnen creëren. Activities kunnen samenwerken door gegevens aan elkaar door te geven, wat zorgt voor naadloze navigatie en functionaliteit in de app.

Meer over Activity

Een activity is een centraal onderdeel van de ontwikkeling van Android-applicaties dat één scherm met een gebruikersinterface vertegenwoordigt. Elke activity is een zelfstandige eenheid die gebruikersinteracties afhandelt en gegevens presenteert, waarmee ontwikkelaars dynamische en boeiende gebruikerservaringen kunnen creëren. Activities zijn fundamentele bouwstenen van Android-apps en fungeren als toegangspunten waarlangs gebruikers met de functies van de app interageren.

Technisch gezien is een activity een subklasse van de klasse Activity in de Android SDK, en die werkt door levenscyclusmethoden af te handelen die bepalen hoe de activity wordt aangemaakt, gestart, gestopt en vernietigd. Wanneer een activity wordt gestart, doorloopt die een reeks levenscyclusfasen waarmee ontwikkelaars resources efficiënt kunnen beheren en op gebruikersinteracties kunnen reageren. Daartoe behoren methoden zoals onCreate(), onStart(), onResume(), onPause(), onStop() en onDestroy(), die elk een rol spelen bij het garanderen van een soepele en responsieve gebruikerservaring.

Activities kunnen op verschillende manieren worden gepresenteerd, die elk verschillende soorten interactie ondersteunen:

  1. Volledig scherm: Hier fungeert de activity als een zelfstandig scherm dat gebruikersinteracties afhandelt en gegevens presenteert. Dit is de meest voorkomende vorm, waarbij de gebruiker tussen verschillende schermen in een app navigeert.

  2. Als dialoogvenster: Met een dialoogthema wordt de activity gepresenteerd als een dialoogvenster dat boven het huidige scherm zweeft. Dat wordt soms gebruikt om belangrijke berichten te tonen of om invoer van de gebruiker te vragen zonder de huidige context te verlaten, al worden dialoogvensters vaker geïmplementeerd met dialog fragments of Compose.

  3. Immersive modus: De activity neemt de volledige controle over het scherm en verbergt systeembalken zoals de statusbalk en de navigatiebalk om een meeslepende ervaring te bieden. Dat is ideaal voor games of het afspelen van media, waarbij focus op de content cruciaal is.

Een van de grootste sterke punten van activities is hun vermogen om complexe gebruikersinteracties en navigatiepatronen af te handelen. Het activitymodel van Android ondersteunt een aantal navigatiepatronen, zoals de back stack, waarmee gebruikers terug kunnen navigeren naar eerdere schermen, wat een intuïtieve en voorspelbare gebruikerservaring oplevert. Daarnaast kunnen activities met behulp van intents gegevens delen en met elkaar communiceren, wat een naadloze integratie tussen verschillende delen van een app mogelijk maakt.

Activities zijn ook ontworpen om zuinig met resources om te gaan. Met de levenscyclusmethoden van Android kunnen ontwikkelaars het resourceverbruik optimaliseren door onnodige resources vrij te geven wanneer een activity niet zichtbaar is en ze opnieuw te laden wanneer die terugkeert naar de voorgrond. Dat helpt ervoor te zorgen dat apps responsief en efficiënt blijven, zelfs op apparaten met beperkte resources.

In de praktijk hebben activities de manier gevormd waarop Android-apps worden ontworpen en ontwikkeld. Ze bieden een gestructureerde aanpak voor het afhandelen van gebruikersinteracties en navigatiepatronen, waarmee ontwikkelaars rijke en boeiende gebruikerservaringen kunnen creëren. Activities vormen de kern van veel populaire apps, waarin ze worden gebruikt om content te organiseren, gebruikersinvoer af te handelen en tussen verschillende functies te navigeren.

Samengevat zijn activities een essentieel onderdeel van Android-ontwikkeling dat flexibiliteit, efficiëntie en gebruiksgemak combineert in een oplossing waarmee ontwikkelaars krachtige en intuïtieve apps kunnen maken. Hun vermogen om complexe levenscycli en navigatiepatronen af te handelen maakt ze tot een centraal hulpmiddel bij moderne app-ontwikkeling, waarin de gebruikerservaring en efficiënt resourcebeheer cruciaal zijn.

Veelgestelde vragen over Activity

Wat is een activity in Android?

Een activity is een van de fundamentele bouwstenen van een Android-app. Die vertegenwoordigt doorgaans één scherm met een gebruikersinterface, zoals een inlogscherm, een lijst met berichten of een instellingenpagina. De gebruiker interageert met de app via de activities ervan.

Elke activity is een klasse die erft van Activity of, vaker, van AppCompatActivity of ComponentActivity, en moet worden gedeclareerd in het bestand AndroidManifest.xml. Eén activity wordt gemarkeerd als startpunt, zodat het systeem weet wat er moet worden geopend wanneer de gebruiker op het pictogram van de app tikt. Moderne apps hebben vaak weinig activities en gebruiken fragments of Jetpack Compose om verschillende schermen te tonen.

Hoe werkt de levenscyclus van een activity?

Een activity doorloopt een reeks toestanden vanaf het moment dat die wordt aangemaakt tot die wordt gesloten. Android roept specifieke methoden aan wanneer de toestand verandert. onCreate wordt aangeroepen wanneer de activity wordt aangemaakt, en hier wordt de gebruikersinterface opgezet. onStart en onResume worden aangeroepen wanneer die zichtbaar en klaar voor gebruik wordt.

Wanneer de gebruiker overschakelt naar een andere app of een ander scherm, worden onPause en onStop aangeroepen, en wanneer de activity volledig wordt gesloten, wordt onDestroy aangeroepen. Door code in de juiste methoden te plaatsen, kan de app bijvoorbeeld een video stoppen wanneer die niet zichtbaar is en gegevens opslaan voordat die wordt gesloten. Een onjuiste afhandeling kan fouten veroorzaken en resources verspillen.

Hoe schakelt een app tussen activities?

Een app schakelt van de ene activity naar de andere met behulp van een intent. Een intent beschrijft welke activity moet worden geopend en kan gegevens bevatten, zoals de ID van een product dat het nieuwe scherm moet tonen. De intent wordt verstuurd met de methode startActivity.

De nieuwe activity wordt bovenaan een stapel geplaatst die de back stack wordt genoemd. Wanneer de gebruiker op terug drukt, wordt de bovenste activity gesloten en wordt de vorige opnieuw getoond. Als het nieuwe scherm een resultaat moet teruggeven, zoals een geselecteerde afbeelding, wordt de Activity Result API gebruikt. Veel moderne apps gebruiken echter één activity en het Navigation-component om daarbinnen tussen schermen te schakelen.

Wat gebeurt er met een activity wanneer het scherm wordt gedraaid?

Wanneer de gebruiker de telefoon draait, verandert de configuratie, en standaard vernietigt Android de huidige activity en maakt die opnieuw aan. Dat maakt het mogelijk een andere lay-out te laden die past bij de nieuwe oriëntatie, maar betekent ook dat gegevens die alleen in de activity worden bewaard, verloren kunnen gaan.

Om dat te voorkomen, wordt doorgaans een ViewModel gebruikt, dat configuratiewijzigingen overleeft en gegevens zoals geladen lijsten bewaart. Kleine hoeveelheden state, zoals tekst in een veld of een scrollpositie, kunnen worden opgeslagen met onSaveInstanceState of met rememberSaveable in Jetpack Compose. Hetzelfde geldt wanneer de taal, het thema of de schermgrootte verandert.

Wat is het verschil tussen een activity en een fragment?

Een activity is een zelfstandig component dat bij het systeem bekend is en in AndroidManifest.xml wordt gedeclareerd. Die fungeert als container voor de gebruikersinterface van de app en kan rechtstreeks worden gestart, bijvoorbeeld vanuit een melding of een andere app.

Een fragment is een kleiner, herbruikbaar deel van de gebruikersinterface dat altijd binnen een activity leeft. In dezelfde activity kunnen meerdere fragments worden getoond, zoals een lijst en een detailweergave naast elkaar op een tablet. Fragments hebben hun eigen levenscyclus, die gekoppeld is aan de activity waarin ze zijn ondergebracht. Veel apps gebruiken weinig activities en veel fragments of Compose-schermen.

Wat zijn launch modes voor een activity?

Launch modes bepalen hoe een nieuwe activity bij het starten wordt geplaatst ten opzichte van bestaande activities. Standaard wordt er elke keer een nieuwe instantie aangemaakt, zelfs als dezelfde activity al open is.

Met singleTop wordt de activity hergebruikt als die al bovenaan de stapel staat, in plaats van dat er een nieuwe wordt aangemaakt. Met singleTask bestaat er maar één instantie, en worden activities daarboven verwijderd wanneer die opnieuw wordt geopend. singleInstance plaatst de activity in een eigen task, en sinds Android 12 staat singleInstancePerTask één instantie per task toe. Launch modes worden opgegeven in AndroidManifest.xml of met flags op een intent en worden bijvoorbeeld gebruikt om duplicaten te voorkomen wanneer de app vanuit een melding wordt geopend.

Activity voor dummies

Een activity in een app is als één scherm op een mobiele telefoon. Zie het als een pagina in een boek. Wanneer een app wordt geopend, verschijnt er een scherm waarop iets specifieks kan worden gedaan, zoals nieuws lezen, een bericht versturen of foto’s bekijken. Elk van die schermen is een “activity”. Overschakelen van nieuws lezen naar een bericht versturen betekent overschakelen van de ene activity naar de andere. Het is de manier waarop apps verschillende functies en informatie organiseren, zodat ze eenvoudig te navigeren en te gebruiken zijn.

Plaats een reactie