Състояния на дейност

Когато създава обекти Activity, системата ги избутва в стека (вижте Фигура 3.6). Когато бъдат унищожени, тези обекти се отстраняват оттам, преминавайки през четири възможни състояния.

• Активен.Когато дадена дейност е в горната част на стека, тя е видима и излиза на преден план, като може да приеме въвеждане от потребителя. Android ще се опита да го поддържа работещ на всяка цена, прекъсвайки работата на други дейности, които са на по-ниски позиции в стека, ако е необходимо, осигурявайки всички необходими ресурси за това. Тя ще бъде спряна, ако друга дейност излезе на преден план.

• Спряно.В някои ситуации вашата активност ще се вижда на екрана, но няма да може да приеме въвеждане от потребителя: в този момент тя е спряна. Това състояние възниква, когато полупрозрачни или плаващи диалогови прозорци станат активни и частично го припокриват. Когато е спряно, дейността се счита за напълно работеща, но не може да взаимодейства с потребителя. Неговата работа може да прекрати преждевременно, ако системата трябва да разпредели ресурси за този Active

ност, която е на преден план. Пълно изчезване от екрана

• Спряно.Когато дадено действие вече не се вижда, то спира и остава в паметта, като запазва цялата информация за състоянието си. Тоест става кандидат за преждевременно изключване, ако системата се нуждае от памет за нещо друго. Когато дейността е спряна, е важно да запазите данните и текущото състояние на потребителския интерфейс. Веднага след като Activity обект приключи работата си или бъде затворен, той става неактивен.

• Неактивен.Това състояние възниква след приключване на дейността и преди товакак ще бъде пуснат отново. Такава дейност се премахва от стека и трябва да се стартира отново, преди да може да се покаже и използва отново.

Преходът на състоянието е недетерминиран процес и се контролира изцяло от мениджъра на системната памет. Android първо ще затвори приложения, съдържащи неактивни обекти Activity, след това ще премине към тези, чиито дейности са спрени или поставени на пауза (само в крайни случаи).

ЗАБЕЛЕЖКА

За да може приложението да предизвика холистично изживяване, потребителят не трябва да вижда процеса на промяна на неговите състояния. Когато променя състоянието си от спряно на спряно или от неактивно на активно, обектът Activity не трябва да се променя външно. Следователно, когато спирате или преустановявате дейността, е важно да запазите състоянието на потребителския интерфейс и всички данни. След като дейността излезе на преден план, тя трябва да възстанови всички запазени стойности.