3. díl - Android programování - Životní cyklus a nový projekt

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

V minulém tutoriálu o torbě Android aplikací v Javě jsme se věnovali vývojovým nástrojům. Ve třetím dílu naší série 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.

Nyní je třeba pochopit jak funguje aktivita a její životní cyklus a vědět jaké je pro nás nejvhodnější 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.

1. Activity

Aktivitu si můžeme představit jako základní komponentu pro vykreslení grafického návrhu 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“, tohle 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é.

2. Životní cyklus aktivity

Android, jakožto OS primárně pro chytré telefony, sám zodpovídá za activity 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

2.1 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á.

2.2 Metody Lifecycle

onCreate()

Při spuštění activity 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 status bar atd.), jestli se mají vytvořit globální proměnné nebo zda budeme globálně přistupovat k objektu TextView atd.

Android studiem vygenerovaný kód:

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.

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é activity), 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 activity na pozadí. Systém dostává pravomoc násilného ukončení activity.

OnStop()

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

OnDestroy()

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

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().

3 Vytvoření projektu

Vybereme File -> New project, Vyskočí okno "Create New Project".

Nový Android projekt
  • Application name- 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.

3.1 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 15, aplikace poběží na všech telefonech s API 15 až 21 (v době kdy píši tyto tutoriály je 21 nejnovější verze), 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 malé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čí malé 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. V současnosti je podle statistik 99,2 % zařízení kompatibilních s API 10. Pokud bychom ovšem 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 dalším díle se konečně vrhneme na vytvoření naší první aplikace a to kalkulačky.

Zdroje


 

  Aktivity (1)

Článek pro vás napsal Jiří Hlavík
Avatar
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

Jak se ti líbí článek?
Celkem (15 hlasů) :
55555


 



 

 

Komentáře

Avatar
Libor Šimo (libcosenior):

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.