En activity är en av de grundläggande komponenterna i en Android-app och representerar vanligtvis en enskild skärm med ett användargränssnitt, till exempel en inloggningsskärm, en lista med meddelanden eller en inställningssida. Varje activity är en klass som ärver från Activity eller, oftast, från AppCompatActivity eller ComponentActivity, och den måste registreras i appens AndroidManifest.xml. När användaren öppnar appen från hemskärmen startar systemet den activity som har angetts som appens startpunkt, och därifrån kan appen öppna andra activities med hjälp av intents.
En activity har en livscykel som styrs av Android-systemet. Genom metoder som onCreate(), onStart(), onResume(), onPause(), onStop() och onDestroy() meddelas appen när skärmen skapas, blir synlig, tappar fokus eller stängs, så att resurser kan frigöras och data sparas vid rätt tidpunkt. Många moderna appar använder bara en eller några få activities och bygger de enskilda skärmarna med fragments eller Jetpack Compose, men en activity är fortfarande det element som kopplar appens användargränssnitt till systemet.
En activity inom apputveckling avser en enskild skärm i en Android-applikation som fungerar som ett interaktivt fönster för användaren. Varje activity ansvarar för att hantera användarinteraktioner och presentera data, vilket gör det möjligt för utvecklare att skapa dynamiska och engagerande användarupplevelser. Activities kan samarbeta genom att skicka data mellan varandra, vilket säkerställer sömlös navigering och funktionalitet i appen.
Mer om Activity
En activity är en central komponent i utvecklingen av Android-applikationer som representerar en enskild skärm med ett användargränssnitt. Varje activity är en fristående enhet som hanterar användarinteraktioner och presenterar data, vilket gör det möjligt för utvecklare att skapa dynamiska och engagerande användarupplevelser. Activities är grundläggande byggstenar i Android-appar och fungerar som ingångar genom vilka användarna interagerar med appens funktioner.
Tekniskt är en activity en subklass till klassen Activity i Android SDK, och den fungerar genom att hantera livscykelmetoder som styr hur den skapas, startas, stoppas och förstörs. När en activity startas går den igenom en serie livscykelsteg som gör det möjligt för utvecklare att hantera resurser effektivt och reagera på användarinteraktioner. Hit hör metoder som onCreate(), onStart(), onResume(), onPause(), onStop() och onDestroy(), som var och en spelar en roll för att säkerställa en smidig och responsiv användarupplevelse.
Activities kan presenteras på olika sätt, som vart och ett stöder olika typer av interaktion:
Helskärm: Här fungerar en activity som en fristående skärm som hanterar användarinteraktioner och presenterar data. Det är den vanligaste formen, där användaren navigerar mellan olika skärmar i en app.
Som dialogruta: Med ett dialogtema presenteras en activity som en dialogruta som svävar ovanför den aktuella skärmen. Det används ibland för att visa viktiga meddelanden eller be om användarens inmatning utan att lämna det aktuella sammanhanget, även om dialogrutor oftare implementeras med dialog fragments eller Compose.
Uppslukande läge (immersive mode): En activity tar full kontroll över skärmen och döljer systemfält som statusfältet och navigeringsfältet för att ge en uppslukande upplevelse. Det är idealiskt för spel eller mediauppspelning, där fokus på innehållet är avgörande.
En av de största styrkorna med activities är förmågan att hantera komplexa användarinteraktioner och navigeringsmönster. Androids activity-modell stöder ett antal navigeringsmönster, som back stack, som låter användare navigera tillbaka till tidigare skärmar, vilket skapar en intuitiv och förutsägbar användarupplevelse. Dessutom kan activities dela data och kommunicera med varandra med hjälp av intents, vilket möjliggör sömlös integration mellan olika delar av en app.
Activities är också utformade för att vara resurseffektiva. Androids livscykelmetoder gör det möjligt för utvecklare att optimera resursförbrukningen genom att frigöra onödiga resurser när en activity inte är synlig och ladda in dem igen när den återvänder till förgrunden. Det bidrar till att appar förblir responsiva och effektiva, även på enheter med begränsade resurser.
I praktiken har activities format hur Android-appar designas och utvecklas. De ger ett strukturerat sätt att hantera användarinteraktioner och navigeringsmönster, vilket gör det möjligt för utvecklare att skapa rika och engagerande användarupplevelser. Activities utgör kärnan i många populära appar, där de används för att organisera innehåll, hantera användarens inmatning och navigera mellan olika funktioner.
Sammanfattningsvis är activities en väsentlig del av Android-utveckling som förenar flexibilitet, effektivitet och användarvänlighet i en lösning som gör det möjligt för utvecklare att skapa kraftfulla och intuitiva appar. Förmågan att hantera komplexa livscykler och navigeringsmönster gör dem till ett centralt verktyg i modern apputveckling, där användarupplevelse och effektiv resurshantering är avgörande.
Vanliga frågor om Activity
Vad är en activity i Android?
En activity är en av de grundläggande byggstenarna i en Android-app. Den representerar vanligtvis en enskild skärm med ett användargränssnitt, till exempel en inloggningsskärm, en lista med meddelanden eller en inställningssida. Användaren interagerar med appen genom dess activities.
Varje activity är en klass som ärver från Activity eller, oftare, AppCompatActivity eller ComponentActivity, och den måste deklareras i filen AndroidManifest.xml. En activity markeras som startpunkt, så att systemet vet vad som ska öppnas när användaren trycker på appens ikon. Moderna appar har ofta få activities och använder fragments eller Jetpack Compose för att visa olika skärmar.
Hur fungerar en activitys livscykel?
En activity går igenom en serie tillstånd från det att den skapas tills den stängs. Android anropar specifika metoder när tillståndet ändras. onCreate anropas när en activity skapas, och det är här användargränssnittet sätts upp. onStart och onResume anropas när den blir synlig och redo att användas.
När användaren byter till en annan app eller skärm anropas onPause och onStop, och när en activity stängs helt anropas onDestroy. Genom att placera koden i rätt metoder kan appen till exempel stoppa en video när den inte är synlig och spara data innan den stängs. Felaktig hantering kan orsaka fel och slösa resurser.
Hur växlar en app mellan activities?
En app växlar från en activity till en annan med hjälp av en intent. En intent beskriver vilken activity som ska öppnas och kan innehålla data, till exempel id:t för en produkt som den nya skärmen ska visa. Intenten skickas med metoden startActivity.
Den nya activityn placeras överst i en stack som kallas back stack. När användaren trycker bakåt stängs den översta activityn, och den föregående visas igen. Om den nya skärmen behöver returnera ett resultat, till exempel en vald bild, används Activity Result API. Många moderna appar använder dock en enda activity och Navigation-komponenten för att växla mellan skärmar inom den.
Vad händer med en activity när skärmen roteras?
När användaren vrider telefonen ändras konfigurationen, och som standard förstör Android den aktuella activityn och skapar den på nytt. Det gör det möjligt att ladda en annan layout som passar den nya orienteringen, men det innebär också att data som bara finns i activityn kan gå förlorade.
För att undvika det används vanligtvis en ViewModel, som överlever konfigurationsändringar och behåller data som inlästa listor. Små mängder tillstånd, som text i ett fält eller en skrollposition, kan sparas med onSaveInstanceState eller med rememberSaveable i Jetpack Compose. Detsamma gäller när språk, tema eller skärmstorlek ändras.
Vad är skillnaden mellan en activity och ett fragment?
En activity är en fristående komponent som är känd av systemet och deklareras i AndroidManifest.xml. Den fungerar som en behållare för appens användargränssnitt och kan startas direkt, till exempel från en avisering eller en annan app.
Ett fragment är en mindre, återanvändbar del av användargränssnittet som alltid lever inuti en activity. Flera fragments kan visas i samma activity, till exempel en lista och en detaljvy sida vid sida på en surfplatta. Fragments har en egen livscykel, som är knuten till den activity som är värd för dem. Många appar använder få activities och många fragments eller Compose-skärmar.
Vad är launch modes för en activity?
Launch modes avgör hur en ny activity placeras i förhållande till befintliga när den startas. Som standard skapas en ny instans varje gång, även om samma activity redan är öppen.
Med singleTop återanvänds en activity om den redan ligger överst i stacken, i stället för att en ny skapas. Med singleTask finns bara en instans, och activities ovanför den tas bort när den öppnas igen. singleInstance placerar en activity i en egen task, och sedan Android 12 tillåter singleInstancePerTask en instans per task. Launch modes anges i AndroidManifest.xml eller med flaggor på en intent och används till exempel för att undvika dubbletter när appen öppnas från en avisering.
Activity för dummies
En activity i en app är som en enskild skärm på en mobiltelefon. Tänk på det som en sida i en bok. När en app öppnas visas en skärm där man kan göra något specifikt, till exempel läsa nyheter, skicka ett meddelande eller titta på foton. Var och en av dessa skärmar är en ”activity”. Att byta från att läsa nyheter till att skicka ett meddelande innebär att byta från en activity till en annan. Det är så appar organiserar olika funktioner och information, så att de är lätta att navigera och använda.