ПредишенСледващото

жизнен цикъл на приложения за Android

жизнен цикъл на приложения в Android следи стриктно и зависи от нуждите на потребителя, налични ресурси, и така нататък .. Например, потребителят желае да започне браузъра. Решението относно прилагането започва приемната система. Въпреки, че последната дума принадлежи на системата, тя е обект на определени специфични правила и логика, която открива дали можете да изтеглите приложението да спре или прекрати своята дейност. Ако текущия потребител работи с определен прозорец, системата дава приоритет на съответното приложение. И обратното, ако прозорецът не се вижда и системата прецени, че заявлението трябва да спре, за да се мобилизират допълнителни ресурси, за да бъде спрян за кандидатстване за работа, който има по-нисък приоритет. На Android, ресурсите са по-ограничени, така че Android по-строг контрол на заявленията.

Основните методи на жизнения цикъл на прилагане

  • защитен нищожен onCreate ()
  • защитен невалидни onStart ()
  • защитен невалидни onRestart ()
  • защитен невалидни onResume ()
  • защитен невалидни onPause ()
  • защитен невалидни onStop ()
  • защитен невалидни onDestroy ();

onCreate ()

метод onCreate () се нарича при създаването или рестартиране активност. Системата може да се пуска и спира на текущия прозорец, в зависимост от събитията. Вътре в този метод, да конфигурирате статичен интерфейс дейност. Нулира данни статична дейност, данните, свързани със списъци и т.н. Той се свързва с необходимите данни и ресурси. Задава вид чрез (метод setContentView).

Този метод се зарежда на потребителския интерфейс, поставете позоваването на свойствата на данните от клас се свързват с органите за управление, създаване на услуги и потоци. onCreate () метод се Bundle обект. съдържащ състоянието на потребителския интерфейс, той се записва в последното повикване onSaveInstanceState манипулатор. За да възстановите предишното си състояние на графичния потребителски интерфейс е необходимо да използвате тази променлива: вътре onCreate () метод или по-висшия onRestoreInstanceState ().

при инициализация отнемащи време операции трябва да се извършват в процес на фон, не се използва метод onCreate (). В противен случай, можете да получите на ANR (Приложението е блокирало, неотзивчив) диалогов прозорец.

Методът може да се провери дали се изпълнява приложението за първи път, или възстановен от паметта. Ако стойността на променливата savedInstanceState да бъде нула. приложения се стартира за първи път:

Променливата може да се съхранява в метод currentBillTotal onSaveInstanceState ():

За onCreate () винаги трябва да бъде предизвикателство onStart (). но преди onStart () не е задължително да отидете onCreate (). тъй onStart () може да се нарече и да възобнови спряното прилагане (метод на приложение спира onStop ()). Когато се обадите onStart () на прозореца не е видим за потребителя, но това скоро ще бъде очевидна. Той изпраща незабавно преди активността става видим за потребителя. Придружен от обажда onResume (). ако дейността получава на преден план, или като се обадите onStop (). ако стане скрито.

onResume ()

Имайте предвид, че системата нарича този метод, когато активността ви идва на преден план, включително, когато за първи път е създаден. По този начин, трябва да се прилагат onResume (), за да се инициализира компоненти, регистрация на всички радиоприемници или други процеси, които ви се освобождават / суспендирани в onPause () и изпълнява всяка друга инициализация, която трябва да се случи, когато дейността на новосъздадената активните.

Опитайте се да поставите относително бърз и лек кода за вашето приложение остава отзивчиви, когато се скрие от екрана или излезе на преден план.

Не е нужно да се презареди състоянието на UI в него, тъй като тези функции са възложени на процесори onCreate () и onRestoreInstanceState.

Например, след onPause на метод (). характеризиращ се суспендира работната камера (виж по-долу). Отново стартира камера:

При този метод, трябва да спрете анимацията и други действия, които CPU интензивно. Подсигурете на данни, например, проекти на писма, тъй като след изпълнението си на трудова дейност могат да бъдат прекъсвани без предупреждение. Безплатни системни ресурси, като например обработка на данни от GPS.

Опитайте се да поставите относително бърз и лек кода за вашето приложение остава отзивчиви, когато се скрие от екрана или излезе на преден план.

Въз основа на архитектурата на вашата кандидатура, можете също да спира изпълнението на конци, процеси или предавател, докато активността се извежда на преден план.

Например, методът, използван при работа с камерата по следния начин:

В същото време не трябва да използвате onPause (), за да съхраните промените на потребителите (като лични данни, въведени във формата) за постоянно съхранение. Изключение може да бъде, когато сте сигурни, че потребителите очакват промени, за да бъдат запазени автоматично (например електронна поща рисунка). Въпреки това, трябва да избягвате да правите интензивна работа в onPause (). като запис в база данни, тъй като това може да забави прехода към следващото упражнение (вместо него трябва да носите тежък товар по време на onStop () отваря работа).

Когато дейността се спира, всички компоненти се съхраняват в паметта и подновяване не е необходимо, за да ги върне в начално.

метод onStop () се нарича, когато прозорецът става невидим за потребителя. Това може да се случи, когато й унищожаване, или, ако е пуснат други дейности (съществуващ или нов), блокирани прозореца на текущата дейност. Винаги придружава всеки метод предизвикателство onRestart (). ако дейността се връща за взаимодействие с потребителя, или метод onDestroy (). ако е разрушена тази дейност.

Забележка: Дори ако системата е затворена дейност, когато той е бил спрян, той все още запазва статута на обекти, като текст в EditText в специално съоръжение Bundle (под формата на ключ-стойност) и да ги възстановява, ако потребителят се връща към една и съща инстанция дейност.

При този метод, можете да направите сложни операции за запазването на данни: за спирането на сложни анимации, стрийминг, проследяване на данните от сензорите за GPS искания, таймери, услуги или други процеси, които се нуждаят само за актуализиране на потребителския интерфейс. Няма никакъв смисъл да се консумира ресурси (процесорни цикли и мрежовия трафик) за обновяване на интерфейса, докато тя не се вижда на екрана. Нанесете методи onStart () или onRestart (), за да се възобнови или да рестартирате тези процеси, когато активността отново да стане видима.

Ако има недостатъчно системна памет може да унищожи латентна дейност, заобикаляйки onStop () метод разговор с метод onDestroy ().

onRestart ()

Ако прозорецът обратно на преден план след onStop на повикване (). в този случай се нарича onRestart (метод). Т.е. Тя извика след активността е била спряна, а потребителят е стартирана отново. Винаги придружен от обажда onStart ().

onRestart преди onStart метод повикване () (с изключение на първия). Използвайте го за специални действия, които трябва да се извършват само когато рестартирате дейност в рамките на "пълен" състояние.

onDestroy ()

Методът се нарича в края на работната дейност, финала на метод повикване () или когато системата унищожава инстанция дейност, за да освободи ресурси. Тези два сценария унищожение може да се определи, като се обадите isFinishing (). Наречен преди дейността на унищожение. Това последното искане, което да стане активен, в системата. Ако даден прозорец е на челна позиция в стека, но е невидима за потребителя и системата решава да завърши този прозорец, наречен метод onDestroy (). В този случай, методът изтрива всички статични данни за дейността. Отделяне на всички използвани ресурси.

Тъй като всички необходими действия за освобождението на ресурсите, които са направили в onStop () метод. след това в този метод можете да застрахова и проверете отново всички neosvobozhdonnye ресурси.

На практика, често трябва да се справят с методите на onCreate (). onResume () и onPause (). метод onCreate () ще се нарича при създаването на потребителския интерфейс за работа с прозореца. Този метод позволява да се свързват данни за компонентите и за да се свържете, занимаващо се със събития за компоненти на потребителския интерфейс. С помощта на onPause (), можете да запазите важна информация в базата данни на вашите данни за кандидатстване. Това е последният безопасен метод, който ще се нарича, преди системата да е завършил кандидатстване за работа. onDestroy () метод не е задължително, причинени от, така че не разчитат на този метод при прилагането на критична логика.

За яснота създадем един пример, където за всеки метод на жизнения цикъл подготви изскачащо съобщение, както и за предпазната мрежа ще доведе записът. Ние можем да станем свидетели на целия жизнен цикъл.

Кодът за метода:

Изпълнете проекта и последващи съобщения. Те ще се появи в правилната последователност, което ви дава представа за жизнения цикъл на приложение. Също така, съобщения да се разпространяват прозорец Logcat върху раздела 6.Android в студиото. Моля, обърнете внимание на следните точки. Когато вашето приложение се изпълнява, след това кликнете върху първия бутон за промяна на текста в TextView. След това натиснете бутона Home (не върна!), За да стигнем до началния екран. След това рестартирайте вашето приложение. Вие ще видите, че заявлението не поставя onCreate () метод. и текста в TextView ще свидетелства, че жалбата не е била затворена, но само до минимум. Това е един много важен момент, който трябва да бъде разбран. Разбирането на тези неща, ще ви помогне да изградите логиката на приложението е вярна.

Натиснете бутона Назад, за да излезете на заявлението

Начало бутон е натиснат

След натискане на бутона Home, когато приложението се стартира от списък с последно отваряните приложения или чрез икона

Когато стартирате друго приложение от областта за уведомяване, или да отворите приложението Settings

Кликвайки Обратно в друго приложение или в настройките на приложението си и се превърна отново видими.

диалогов прозорец, който се отваря

затваря диалоговия прозорец

Потребителят отговаря на повикването

Екранът отново е включена

На китайските плочи, понякога се наблюдава, когато някои се е провалил.

Чрез завъртане на дейността преминава през верига от различни държави. Процедурата е следната.

onPause ()
onStop ()
onDestroy ()
onCreate ()
onStart ()
onResume ()

призовава процедура

След onCreate () - onStart ()

След onRestart () - onStart ()

След onStart () - onResume () или onStop ()

След onResume () - onPause ()

След onPause () - onResume () или onStop ()

След onStop () - onRestart () или onDestroy ()

След onDestroy () - нищо

Допълнителна информация

Свързани статии

Подкрепете проекта - споделете линка, благодаря!