Java týden Body zdarma
Využij podzimních slev a získej od nás až 40 % bodů zdarma! Více zde
Pouze tento týden sleva až 80 % na Java e-learning!

Lekce 3 - Android programování - Životní cyklus a nový projekt

Unicorn College Tento obsah je dostupný zdarma v rámci projektu IT lidem.
Vydávání, hosting a aktualizace umožňují jeho sponzoři.

V minulé lekci, Android programování - Vývojové prostředí, jsme se věnovali vývojovým nástrojům. V dnešním Android Java tutoriálu našeho kurzu si ukážeme, jak vytvořit projekt a vysvětlíme si, co je to aktivita a její životní cyklus a co je to API.

Při vytváření nového projektu si musíme dávat pozor na vhodné zvolení API, v pozdější fázi jej sice změnit můžeme, ale je lepší předejít zbytečným složitostem.

Activity

Aktivitu si můžeme představit jako základní komponentu pro vykreslení naší aplikace. Uvedu příklad. Zapneme aplikaci, zobrazí se úvodní animace. To je první aktivita. Poté se zobrazí menu aplikace s možnostmi "Kalkulačka", "Poznámky" a "Editor", toto bude druhá aktivita. Po kliknutí na jednotlivé nabídky v menu nás aplikace přesměruje do třetí, čtvrté nebo páté aktivity.

Z naší aplikace můžeme přistupovat k aktivitám z jiných aplikací. Například nemusíme vytvářet vlastní aktivitu pro volání jako takové.

Životní cyklus aktivity

Android, jakožto OS primárně pro chytré telefony, sám zodpovídá za aktivity a vše co s nimi souvisí. Je jasné, že majitel telefonu raději odpoví na příchozí hovor nebo SMS, než aby si hrál s aplikací. Může nastat několik situací, jako například příchozí hovor, pozastavení aplikace uživatelem (když se vrátí do hlavní nabídky) atd.

Z toho plyne, že není vždy jasné, jak dlouho aktivita poběží, a proto existují různé metody, které se volají v různých situacích. Podívejte se na následující schéma.

Životní cyklus Android aktivity

Stav activity

Každá aktivita se nachází současně jen v jednom z následujících stavů.

  1. Běží - Aktivita se úspěšně spustila a běží na popředí, je tedy pro uživatele viditelná.
  2. Pauza - Aktivita jde vidět, je ale například překrytá jinou aktivitou. (Upozornění na příchozí SMS, hovor, nebo například dialog o plném nabití baterie při nabíjení). Uživatel se k takové aktivitě nijak nedostane, nemůže s ní pracovat.
  3. Zastavená - Aktivita není vidět, uživatel k ní nemá přístup, ale její objekt ještě nebyl úplně zničen. Uživatel se k ní bude moci vrátit, pokud nebude zničena, například nedostatkem paměti.
  4. Ukončená - Aktivita je úplně mrtvá.

Metody Lifecycle

onCreate()

Při spuštění aktivity se Android postará o základní věci jako vytvoření objektu a spuštění procesu. Dále zavolá metodu onCreate(). V ní nadefinujeme vše potřebné, aby se aktivita mohla rozjet, například jaké grafické rozhraní se nám má zobrazit, jak se dané grafické rozhraní bude zobrazovat (zda má být zobrazen app bar atd.), jestli se mají vytvořit globální proměnné nebo zda budeme globálně přistupovat k objektu TextView atd.

Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!

Android studiem vygenerovaný kód vypadá následovně:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_JmenoActivity);
}

Aktivita v metodě onCreate() nastaví layout pro svůj vzhled (GUI) řádkem:

setContentView(R.layout.activity_JmenoActivity);

Odkazuje tedy na layout activity_Jmeno­Activity, který je ve složce res/layout/.

R poukazuje na automaticky vygenerovaný kód R.java, kde jsou uloženy zdroje (resources).

onStart()

Volá se, pokud aktivita byla poprvé spuštěna (po onCreate()) nebo byla aktivována po svém skrytí (příchozí SMS, systémový dialog například o nabití baterie nebo jiný dialog jiné aktivity), nemůže dostat uživatelský vstup.

onResume()

Volá se těsně před tím, než je aktivita posunuta do popředí (restart, první spuštění nebo odpauzování), může dostat uživatelský vstup.

onPause()

Volá se před přechodem aktivity na pozadí. Systém dostává pravomoc násilného ukončení aktivity.

onStop()

Volá se, když se má aktivita zastavit, není viditelná pro uživatele.

onDestroy()

Volá se před zrušením aktivity.

onRestart()

Jak vyplývá z předchozího diagramu, pokud byla zavolána onStop() a aktivita se restartuje, volá se onRestart(), jenž se provede před onStart().

Při programování není vždy nutné brát zřetel na všechny zmíněné metody. Někdy je zkrátka není potřeba použít. Jedinou podmínkou je použití metody onCreate().

Vytvoření projektu

Vybereme File -> New project, vyskočí okno "Create New Project":

Nový Android projekt
  • Application name - zde zadáme jméno naší aplikace
  • Company Domain - toto je originální ID každé aplikace. Nikdy se nesmí se žádnou jinou shodovat.

V dalším okně je třeba vybrat typ zařízení a API:

Výběr typu zařízení a API

Zatrhneme Phone and Tablet a vybereme API. Po výběru API si můžeme všimnout, že nám Android Studio vypsalo kolik % současných zařízení bude schopno naši aplikaci spustit.

Co je to API?

API určuje jaké třídy a funkcionalitu můžeme při tvorbě naší aplikace použít. Pokud zvolíme API například verze 15, aplikace poběží na všech telefonech s API 21 až 28 (což je nyní poslední verze, která se stále zvyšuje), ovšem uživatel s API 14 aplikaci nezapne.

Obecně platí, že čím vyšší API použijeme, tím více máme při programování možností. Nejen, že budeme moci využít u vyššího API například nějaké pokročilé animace, ale také si programování usnadníme. Například u nízkého API musíme řešit zákaz změny orientace nebo možnost uspávání aktivity přímo v Java kódu, což je značně složitější oproti řešení stejného problému ve vyšším API, kde stačí třeba jen jeden řádek v XML kódu.

V případě naší první aplikace nám stačí nízké API. Pokud zvolíme API 10 (Android 2.3.3) tak naše aplikace pojede takřka všem. Z toho vyplývá, že čím menší API zvolíme, tím více uživatelů bude moci aplikaci používat. Google ale vývojáře nutí podporovat určité API při přidání nové aplikace a toto číslo se stále zvyšuje (Pro rok 2019 je to API 28), takže nemůžeme zas volit úplně nízká čísla. Pokud bychom vyvíjeli například nějakou složitější hru, nebo aplikaci, která potřebuje různé složité animace atd., je lepší zvolit vyšší API kvůli více funkcím.

Závěr

Nyní bychom měli chápat základní informace ohledně vytvoření nového projektu, API, aktivit a jejich životních cyklech.

V příští lekci, Android programování - První aplikace, návrh kalkulačky, si vytvoříme svou první Android aplikaci! :)


 

 

Článek pro vás napsal Jiří Frank
Avatar
Jak se ti líbí článek?
19 hlasů
Autor se věnuje programování v C# a vývoji aplikací pro platformu Android a dalším věcem spojeným s Android OS
Předchozí článek
Android programování - Vývojové prostředí
Všechny články v sekci
Programování Android aplikací v Javě
Miniatura
Následující článek
Android programování - První aplikace, návrh kalkulačky
Aktivity (4)

 

 

Komentáře

Avatar
Libor Šimo (libcosenior):9.3.2015 14:13

Už sa teším na ďalšie články.

Odpovědět  +2 9.3.2015 14:13
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 1 zpráv z 1.