zasobów (np. pamięci RAM) system może automatycznie podjąć decyzję o ich uwolnieniu poprzez usunięcie ze stosu aktywności o najniższym priorytecie [7].
Wyżej wymienione rozwiązanie jest typowo systemowe i niezależne od programisty, co niesie ze sobą zarówno pozytywne, jak i negatywne skutki. Z jednej strony nie ma obaw, że zasoby urządzenia niespodziewanie wyczerpią się i urządzenie zacznie się np. zawieszać. Z drugiej strony jednak taki sposób zarządzania aktywnościami mógłby prowadzić do niekontrolowanego usuwania ze stosu aktywności, które mimo niskiego priorytetu pełną ważną rolę i powinny ciągle działać. Z tego powodu twórcy systemu wprowadzili mechanizm pozwalający bezpośrednio kontrolować cykl życia każdej aktywności, którym można zarządzać za pomocą odpowiednich metod programistycznych.
Każda aktywność składa się z metod, które implementuje programista, jednak konieczne jest też przestrzeganie pewnych z góry określonych zasad programistycznych odnoszących się do aktywności. Programiści mogą tworzyć i implementować dowolne metody, jednak do sterowania aktywnościami konieczne jest (“suwanie wielu, z góry określonych metod. Jest to związane z koniecznością zarządzania jlrj-Jyklem życia. Do sterowania nij^5|użą z góry określone metody, których implementacja bezpośrednio informuje system, jakie działanie dotyczące aktywności ma podjąć w określonym momencie. Metody te są bardzo opisowe i w pełni wyczerpują temat zarządzania działaniem aktywności. Przedstawia je rysunek 2.1, który obrazuje również cykl życia aplikacji oraz metody programistyczne, które pozwalają na kontrolowanie aktywności.
10