Jelly Bean) systemu, każda aplikacja była zbiorem aktywności, bez żadnego, z góry określonego stosu wywołań (ang. workflow). Oznacza to, że programista tworząc aplikację, tworzy tak naprawdę każdą aktywność osobno, nie zastanawiając się nad zależnościami pomiędzy nimi. Otwarcie nowej aktywności jest realizowane poprzez stworzenie i wywołanie odpowiedniego obiektu, zwanego Intent. Intent to rodzaj obiektu, który zawiera informacje na temat aktualnej aktywności oraz aktywności, która ma zostać otwarta. W ten sposób programista może poinformować system, jaką aktywność chce zainicjalizować oraz jaka aktywność jest bazową. Przykładowo: gdy włączona jest aktywność o nazwie MainActivity i z jej poziomu programista chce zaprogramować możliwość otworzenia nowej aktywności (o przykładowej nazwie OtherActivity), może to zrobić za pomocą szeregu poleceń (patrz: kod źródłowy 2.1).
1 Intent mlntent = new Intent ( MainActivity . this , Other Activity . class );
2 MainActivity .this.startActivity (mlntent);
Kod źródłowy 2.1. Przykład wywołania nowej aktywności
Naturalną konsekwencją takiego stanu rzeczy jest to, że każda aktywność może zostać utworzona przez inną aktywość w ramach danej aplikacji. Oznacza to również, że wszystkie aktywności danej aplikacji działają w ramach jednego procesu. Po zamknięciu wywołanej aktywności przywracana jest poprzednia i w jej ramach wykonuje się metoda onResumeO. Wszystko odbywa się zgodnie z cyklem życia aktywności. Gdy zostanie zamknięta ostatnia aktywność aplikacji, zakończony zostaje cały jej proces, co równoważne jest z zakończeniem działania całego programu.
Opisany sposób zarządzania aktywnościami został usprawniony w wersji 4.1. Zmiany wprowadzone w tej wersji nie wpłynęły na sam sposób zarządzania aktywnościami. Dodano natomiast dodatkową opcję, którą można dodać jako atrybut aktywności w pliku manifestu. Atrybut android :parentActivityName można dodać do tagu dowolnej aktywności, czyli w ramach tagu activity. Przykładowy kod źródłowy widoczny jest na przykładzie 2.2.
1 <activity android : name=‘ChildActivity ’
2 android : parent ActivityName=‘Parent Activity ’>
Kod źródłowy 2.2. Przykład ustawienia zależności pomiędzy aktywnościami
Za pomocą tej dodatkowej funkcjonalności, architekci systemu Android chcieli usprawnić sposób nawigowania pomiędzy aktywnościami. Sednem usprawnienia jest umożliwienie określenia aktywności nadrzędnej. Poprzez przypisanie wartości dla opisywanego tagu programista gwarantuje użytkownikom przewidywalną kolejność wywołań aktywności. Dzięki
14