Ang ikot ng buhay ng isang Android application

basic-guide-programming-android-2

Kapag nagsimula kang mag-program sa isang wika tulad ng C ++ o Java, ang unang bagay na itinuro ay ang pangunahing pamamaraan, ang puntong tatawag ang operating system kapag sinimulan namin ang aming aplikasyon.

Sa Android walang pangunahing pamamaraan tulad nito, ngunit maraming mga pamamaraan ng aming aktibidad na tatawagin ng SSOO kapag nangyari ito mahahalagang pangyayari. Sa kabanatang ito, pag-aaralan natin nang malalim kung ano ang mga kaganapang iyon, at kung paano ito gumagana. ang kumpletong ikot ng isang aktibidad ng Android. Ang opisyal na dokumentasyon nag-aalok ng isang malawak na paliwanag tungkol sa paksang ito, dito pag-aaralan namin ang pinakamahalagang elemento kasama ang ilang mga karaniwang pagkakamali kapag hinahawakan ang mga ito.

Ang siklo ng buhay ng Android ay sumusunod sa scheme na ito:

android-lifecycle

Mga kaganapan sa ikot ng buhay

  1. onCreate (Bundle)
    • Kinakatawan ang sandali kung kailan ang aktibidad ay nilikha. Ang pamamaraang ito ay normal na mabubuo ng wizard kapag lumilikha ng isang bagong aktibidad sa Android, at dito namin lilikhain ang lahat ng kakailanganin ng aktibidad. Kung na-save namin dati ang data ng aktibidad sa isang Bundle object, maaari namin itong magamit upang muling buhayin ito. Karaniwan hindi namin ito gagamitin.
  2. onStart ()
    • Ang aktibidad ay magpapatuloy maging sa screen, kahit na hindi kinakailangang nakikita. Kung galing tayo sa isang hintuan, dumaan muna kami sa onRestart ().
  3. onRestart ()
    • Nakaraan sa onStart () kapag nagmula kami sa isang tawag sa onStop ().
  4. sa resume ()
    • Magsisimula na ang aktibidad tumugon sa pakikipag-ugnayan gumagamit
  5. onPause ()
    • Ang aktibidad ay titigil sa pagtugon sa pakikipag-ugnay ng gumagamit.
  6. onStop ()
    • Ang aktibidad ay ganap na napunta sa background.
  7. onDestroy ()
    • Aktibidad mawawasak ito at ang iyong mga mapagkukunan ay pinakawalan.

Kapag kailangan naming ipatupad ang isa sa mga pamamaraang ito, gagawin namin ito sa pagdaragdag sa aming aktibidad sa mga profile na ito:

pampublikong klase Ang MyActivity ay nagpapalawak ng Aktibidad {protektado void onCreate (Bundle saveInstanceState) {super.onCreate (saveInstanceState); ...} protektado na walang bisa saStart () {super.onStart (); ...} protektado na walang bisa saRestart () {super.onRestart (); ...} protektado na walang bisa saResume () {super.onResume (); ...} protektado na walang bisa sa Pag-pause () {... super.onPause (); } protektado na walang bisa saStop () {... onStop (); } protektado na walang bisa onDestroy () {... super.onDestroy (); }}

Ito ay mahalaga upang mapanatili tawag sa paraan ng superclass upang hindi maka-engkwentro ng mga sorpresa. Ang mga gawain ng bawat kaganapan na higit sa aming aktibidad ay dapat mapanatili. Ang tawag na ito ay pupunta sa simula ng mga kaganapan sa pag-input, at sa dulo ng mga kaganapan sa output. Sa ganitong paraan maiiwasan namin ang mga sorpresa, dahil ang mga elemento ng aktibidad na kailangan namin ngunit hindi mapupunta sa aming kontrol ay malilikha bago gamitin ang mga ito, at masisira pagkatapos.

Hindi namin kailangang idagdag ang lahat ng mga kaganapan, ang mga hindi namin kailangan ay gagamit ng default na pagpapatupad. Ang mga pamamaraan na madalas naming gagamitin - at ang pagpindot sa iba ay hindi inirerekomenda - ay onCreate, onPause, at onRestart.

Ang kahulugan ng onCreate ay malinaw: ito ay ang lugar kung saan natin mai-load ang mga mapagkukunan na kailangan natin, ang mga pananaw, at kung ano pa ang kailangan natin. Para sa output, ang tanging paraan lamang na pagtuunan namin ng pansin ay ang sa Pag-pause. Ang dahilan ng pag-iwas sa onStop at onDestroy ay wala kaming kontrol sa kanila. tatakbo ang onPause tuwing ang application ay lalabas sa harapan, habang ang dalawa pa ay tatakbo ng operating system batay sa iyong mga pangangailangan. Maaari silang hindi mapatay! Ginagawa ito upang maiwasan ang gastos ng paglikha ng aktibidad nang paulit-ulit kung magpunta kami mula sa aktibidad patungo sa desktop at sa kabaligtaran, at palayain lamang ng operating system ang mga ginamit na mapagkukunan kung kinakailangan ito, at hindi ito kailangang dumalo sa lahat ang bukas na proseso.

Ipinapahiwatig nito na ipalagay namin na ang aplikasyon ay mamamatay pagkatapos magpatupad ng onPause, at ito ay sa amin huling pagkakataon upang makatipid ng data na kailangan nating i-save, at ihinto ang mga serbisyo na ginagamit namin, tulad ng geolocation. Kung pinahinto namin ang mga serbisyo, ang naaangkop na lugar upang i-restart ang mga ito ay onRestart.

Ang iba pang mga pamamaraan na hindi namin kakailanganin upang magamit nang marami. Ang isang karaniwang kaso kung saan kakailanganin namin ito ay kapag isinama namin ang mga aklatan ng third-party, tulad ng Facebook o Flurry. Sa mga kasong ito, hihilingin sa amin na itugma ang mga pamamaraan ng aming aktibidad sa iyong code. Halimbawa, upang magparehistro ng isang session ng Flurry hihilingin sa amin na simulan ang sesyon sa onStart na pamamaraan.

Ang ilang mga kapaki-pakinabang na ideya

  • Tandaan kung para saan ang bawat kaganapan. Palagi mong kakailanganin ang onCreate, at kadalasan ay kakailanganin mo ang sa Pag-pause at onResume upang ihinto at ilunsad muli ang pinaka-ubos na mga serbisyo.
  • Huwag hawakan ang iba pang mga kaganapan kung hindi mo ito kailangan ng malinaw.
  • Huwag magtiwala saStop at onDestroy, baka hindi na sila matawag. I-save ang lahat ng kailangan mo saPause.
  • Iwasang gumamit ng hindi pangwakas na mga variable na static. Maaari pa ring mai-load ang app kapag bumalik ka, at panatilihin nila ang mga halagang naiwan nila. Kung wala kang pagpipilian kundi gamitin ang mga ito, tiyaking i-reset ang kanilang mga halaga kapag bumalik ka sa harapan.

Karagdagang informasiyon - Pangunahing gabay sa pag-program sa Android


Interesado ka sa:
Paano mag-alis ng mga virus sa Android
Sundan kami sa Google News

Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Actualidad Blog
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.