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

basic-guide-programming-android-2

Когато започнете да програмирате на език като C ++ или Java, първото нещо, което се преподава, е основният метод, точката, която операционната система ще извика, когато стартираме нашето приложение.

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

Жизненият цикъл на Android следва тази схема:

android-жизнен цикъл

Събития от жизнения цикъл

  1. onCreate (пакет)
    • Представлява момента, в който дейността се създава. Този метод обикновено се генерира от съветника при създаване на нова активност в Android и там ще създадем всичко, от което ще се нуждае активността. Ако преди това сме запазили данните за активността в обект на Bundle, можем да ги използваме, за да ги генерираме. Обикновено няма да го използваме.
  2. onStart ()
    • Дейността ще отиде в бъдете на екрана, макар и не непременно видими. Ако дойдем от спирка, първо ще преминем през onRestart ().
  3. onRestart ()
    • Преди на onStart (), когато идваме от повикване към onStop ().
  4. onResume ()
    • Дейността ще започне отговори на взаимодействието на потребителя.
  5. onPause ()
    • Дейността ще спрете да отговаряте за взаимодействие с потребителя.
  6. onStop ()
    • Дейността е преминала изцяло към заден план.
  7. onDestroy ()
    • Дейност ще бъде унищожен и вашите ресурси освободени.

Когато трябва да внедрим един от тези методи, ще го направим, добавяйки към нашата дейност с тези профили:

публичен клас MyActivity разширява Activity {protected void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); ...} защитена невалидна onStart () {super.onStart (); ...} защитена празнина onRestart () {super.onRestart (); ...} защитена празнина onResume () {super.onResume (); ...} защитена невалидна onPause () {... super.onPause (); } защитена празнина onStop () {... onStop (); } защитена празнина onDestroy () {... super.onDestroy (); }}

Важно е да се поддържа извикване на метод на суперклас за да не срещнете изненади. Трябва да се поддържат задачите на всяко събитие, които са над нашата дейност. Това повикване ще премине към началото на входните събития и до края на изходните събития. По този начин ще избегнем изненади, тъй като елементите от дейността, от които се нуждаем, но които няма да бъдат под наш контрол, ще бъдат създадени преди да ги използваме и след това ще бъдат унищожени.

Не е нужно да добавяме всички събития, тези, от които не се нуждаем, ще използват изпълнението по подразбиране. Методите, които често ще използваме - и не се препоръчва да докосваме останалите - са onCreate, onPause и onRestart.

Значението на onCreate е ясно: това е мястото, където ще заредим нужните ресурси, изгледите и каквото и да е друго, от което се нуждаем. За изхода единственият метод, върху който ще се спрем, е onPause. Причината за избягване на onStop и onDestroy е, че нямаме никакъв контрол над тях. onPause ще се изпълнява всеки път, когато приложението излезе от преден план, докато другите две ще се изпълняват от операционната система въз основа на вашите нужди. Те може никога да не бъдат екзекутирани! Това се прави, за да се избегнат разходите за създаване на активността отново и отново, ако преминем от активността към работния плот и обратно, а операционната система ще освободи използваните ресурси само ако има нужда от тях и не трябва да присъства на всички отворените процеси.

Това означава, че ще приемем, че приложението ще умре след изпълнение на onPause и че е наше последен шанс за запазване на данни че трябва да спестим и да спрем услугите, които използваме, като геолокация. Ако сме спрели услугите, подходящото място да ги рестартираме е onRestart.

Другите методи няма да имаме нужда да използваме много. Често срещан случай, в който ще ни е необходим, ще бъде, когато интегрираме библиотеки на трети страни, като Facebook или Flurry. В тези случаи ще бъдем помолени да съобразим методите на нашата дейност с вашия код. Например, за да регистрираме Flurry сесия, ще бъдем помолени да стартираме сесията по метода onStart.

Няколко полезни идеи

  • Спомнете си за какво е предназначено всяко събитие. Винаги ще се нуждаете от onCreate и доста често ще имате нужда от onPause и onResume, за да спрете и рестартирате най-консумиращите услуги.
  • Не докосвайте останалите събития ако не ви трябва изрично.
  • Не се доверявайте на onStop и onDestroy, те може никога да не бъдат извикани. Запазете всичко необходимо в onPause.
  • Избягвайте да използвате нефинални статични променливи. Приложението все още може да се зареди, когато се върнете и те ще запазят стойностите, които са оставили след себе си. Ако нямате друг избор, освен да ги използвате, не забравяйте да нулирате стойностите им, когато се върнете на преден план.

Повече информация - Основно ръководство за програмиране в Android


Интересувате се от:
Как да премахнете вируси на Android
Следвайте ни в Google Новини

Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговаря за данните: Actualidad Blog
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.