Tillbaka till lektionslistan
Mobila applikationer med Android: Inlämningsuppgift 2
Meningen med den här uppgiften är:
-
Man ska förstå aktiviteternas (klassen Activity) livscykel.
Android-systemet anropar olika metoder i en aktivitet,
bland andra onCreate, onResume och onPause.
Ibland tar Android-systemet bort en aktivitet, så att det Activity-objektet försvinner.
När appen ska fortsätta köra, skapas det ett nytt objekt av samma klass.
-
Man ska kunna skriva programkod som hanterar de olika anropen
(onCreate med flera).
-
Man ska kunna skriva programkod som sparar undan aktivitetens data när den ska försvinna,
och sedan hämtar in aktivitetens data när det skapas en ny instans.
Uppgift
Skapa en Android-app med en aktivitet som hanterar alla anropen från Android-systemet till aktiviteten
(de metoderna som börjar med on).
Den ska skriva ut alla anropen på skärmen, med klockslag,
ungefär som exempelprogrammet
Simple GPS Test.
Dessutom ska den, till skillnad från Simple GPS Test,
hantera att aktivitetsobjektet förstörs av systemet och sedan skapas på nytt.
För användaren ska det se ut som att det är samma objekt hela tiden,
förutom att man ser att onDestroy och onCreate har anropats.
Eller gör man det? Syns onDestroy? Varför (inte)?
Är det några andra anrop som försvinner? Varför?
Tips:
När man vrider på telefonen så att den byter orientering mellan porträtt och landskap,
förvinner det gamla aktivitetsobjektet, och det skapas ett nytt.
Kan emuleras med CTRL-F11 i emulatorn.
(Fotnot:
Det står visserligen "alla anropen", men det är ganska många.
Beroende på ambitionsnivå kan man begränsa sig till dem som har med aktivitetens livscykel att göra,
och kanske strunta i onTrackballEvent och liknande.)
Lästips
I lektionerna har jag beskrivit en del om aktiviteternas livscykel,
men inte om hur man sparar undan deras data och sen laddar in det igen.
Titta på artiklarna och exempelkoden som finns på
Android-webbplatsen.
Glöm inte att läsa vad det står i referensmanualen om klassen
Activity.
Redovisning
Packa ihop hela Eclipse-projektet (eller motsvarande) som en Zip-fil (eller motsvarande)
och skicka den med e-post till läraren.
Det behövs ingen formell labbrapport, men om det är något som inte
framgår direkt, till exempel hur man använder den inskickade appen eller vad utmatningen betyder,
är det bra med nån sorts beskrivning.
(Och underskatta inte min förmåga att inte begripa.)
Om samarbete:
Varje student ska göra en egen lösning, och skicka in den,
men det är inte förbjudet att samarbeta eller fråga andra studenter om hjälp.
Däremot ska man i så fall tydligt ange vilka som man samarbetat med.
|
Skriv gärna i ärenderaden på brevet vilken kurs det handlar om,
till exempel "Android-uppgift 2", och inte bara "Uppgift 2".
|
Tillbaka till lektionslistan
Thomas Padron-McCarthy
(thomas.padron-mccarthy@oru.se),
18 april 2012