Iċ-ċiklu tal-ħajja ta 'applikazzjoni Android

gwida-bażika-programmazzjoni-android-2

Meta tibda tipprogramma f'lingwa bħal C ++ jew Java, l-ewwel ħaġa li tiġi mgħallma huwa l-metodu ewlieni, il-punt li s-sistema operattiva se ssejjaħ meta nibdew l-applikazzjoni tagħna.

Fl-Android m'hemm l-ebda metodu ewlieni bħala tali, iżda hemm diversi metodi tal-attività tagħna li se jissejħu minn SSOO meta jseħħu Avvenimenti importanti. F'dan il-kapitolu se nistudjaw fil-fond x'inhuma dawk l-avvenimenti, u kif taħdem. iċ-ċiklu sħiħ ta 'attività ta 'Android. Id-dokumentazzjoni uffiċjali joffri spjegazzjoni estensiva ta 'dan is-suġġett, hawnhekk se nistudjaw l-aktar elementi importanti flimkien ma' xi żbalji komuni meta nittrattawhom.

Iċ-ċiklu tal-ħajja ta 'Android isegwi din l-iskema:

android-ċiklu tal-ħajja

Avvenimenti taċ-ċiklu tal-ħajja

  1. onCreate (Bundle)
    • Tirrappreżenta l-mument meta tinħoloq l-attività. Dan il-metodu normalment jiġi ġġenerat mill-wizard meta toħloq attività ġdida fuq Android, u huwa fejn noħolqu dak kollu li l-attività jkollha bżonn. Jekk qabel salvajna d-dejta tal-attività f'oġġett Bundle, nistgħu nużawha biex nirriġenerawha. Normalment ma nużawhiex.
  2. onStart ()
    • L-attività se tkompli tkun fuq l-iskrin, għalkemm mhux neċessarjament viżibbli. Jekk niġu minn waqfien, l-ewwel ngħaddu minn fuqRestart ().
  3. ibda mill-ġdid ()
    • Qabel onStart () meta niġu minn sejħa għal onStop ().
  4. jerġa 'jibda ()
    • L-attività tibda jirrispondu għall-interazzjoni utent.
  5. onPause ()
    • L-attività se tieqaf tirrispondi għall-interazzjoni tal-utent.
  6. onStop ()
    • L-attività marret għal kollox għal sfond.
  7. onDestroy ()
    • Attività se tinqered u r-riżorsi tiegħek rilaxxati.

Meta jkollna bżonn nimplimentaw wieħed minn dawn il-metodi, aħna nagħmlu dan billi nżidu mal-attività tagħna b'dawn il-profili:

klassi pubblika MyActivity testends Activity {protected void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); ...} protett annull onStart () {super.onStart (); ...} protett annull onRestart () {super.onRestart (); ...} protett annull onResume () {super.onResume (); ...} protected void onPause () {... super.onPause (); } protett annull onStop () {... onStop (); } protected void onDestroy () {... super.onDestroy (); }}

Huwa importanti li tinżamm sejħa tal-metodu tas-superklassi sabiex ma tiltaqax ma 'sorpriżi. Il-kompiti ta 'kull avveniment li huma' l fuq mill-attività tagħna għandhom jinżammu. Din is-sejħa se tmur għall-bidu tal-avvenimenti tal-input, u sat-tmiem tal-avvenimenti tal-output. B'dan il-mod nevitaw sorpriżi, billi l-elementi ta 'l-attività li għandna bżonn imma li mhux se jkunu taħt il-kontroll tagħna se jinħolqu qabel ma nużawhom, u jinqerdu wara.

M’għandniex għalfejn inżidu l-avvenimenti kollha, dawk li m'għandniex bżonn se jużaw l-implimentazzjoni default. Il-metodi li ħafna drabi nużaw - u mhux irrakkomandat li tmissu lill-oħrajn - huma onCreate, onPause, u onRestart.

It-tifsira ta 'onCreate hija ċara: huwa l-post fejn ser inġorru r-riżorsi li għandna bżonn, il-veduti, u kull ħaġa oħra li għandna bżonn. Għall-output, l-uniku metodu li se niffokaw fuqu huwa onPause. Ir-raġuni biex nevitaw onStop u onDestroy hija li m’għandniex kontroll fuqhom. onPause jibda jaħdem kull meta l-applikazzjoni toħroġ mit-tagħrif miksub, filwaqt li t-tnejn l-oħra jitmexxew mis-sistema operattiva bbażata fuq il-bżonnijiet tiegħek. Jistgħu qatt ma jiġu eżegwiti! Dan isir biex tiġi evitata l-ispiża tal-ħolqien tal-attività ripetutament jekk immorru mill-attività għad-desktop u viċi versa, u s-sistema operattiva tillibera biss ir-riżorsi użati jekk teħtieġhom, u m'għandhiex għalfejn isservi il-proċessi kollha miftuħa.

Dan jimplika li se nassumu li l-applikazzjoni se tmut wara li teżegwixxi onPause, u li hija tagħna l-aħħar ċans biex tiffranka d-dejta li rridu niffrankaw, u nwaqqfu s-servizzi li qed nużaw, bħall-ġeolokalizzazzjoni. Jekk waqqafna servizzi, il-post xieraq biex nerġgħu nibdewhom huwa onRestart.

Il-metodi l-oħra mhux se jkollna bżonn nużaw ħafna. Każ komuni li fih ikollna bżonnu jkun meta nintegraw libreriji ta 'partijiet terzi, bħal Facebook jew Flurry. F'dawn il-każijiet, aħna se nkunu mitluba nqabblu l-metodi tal-attività tagħna mal-kodiċi tiegħek. Pereżempju, biex nirreġistraw sessjoni Flurry aħna se nkunu mitluba nibdew is-sessjoni bil-metodu onStart.

Xi ideat utli

  • Ftakar x'inhu għal kull avveniment. Dejjem ikollok bżonn onCreate, u ħafna drabi jkollok bżonn onPause u onResume biex twaqqaf u terġa 'tniedi s-servizzi l-aktar li jikkunsmaw.
  • Tmissx l-avvenimenti l-oħra jekk m'għandekx bżonnha espressament.
  • Tafdax fuqStop u onDestroy, jistgħu qatt ma jissejħu. Issejvja dak kollu li għandek bżonn f'Pause.
  • Evita li tuża varjabbli statiċi mhux finali. L-app xorta tista 'titgħabba meta tirritorna, u dawn iżommu l-valuri li ħallew warajhom. Jekk m'għandek l-ebda għażla ħlief li tużahom, kun żgur li tirrisettja l-valuri tagħhom meta terġa 'lura għat-tagħrif miksub.

Iktar informazzjoni - Gwida bażika għall-ipprogrammar fl-Android


Il-kontenut tal-artikolu jaderixxi mal-prinċipji tagħna ta ' etika editorjali. Biex tirrapporta żball ikklikkja hawn.

Kun l-ewwel li tikkummenta

Ħalli l-kumment tiegħek

Your email address mhux se jkun ippubblikat.

*

*

  1. Responsabbli għad-dejta: Actualidad Blog
  2. Għan tad-dejta: Kontroll SPAM, ġestjoni tal-kummenti.
  3. Leġittimazzjoni: Il-kunsens tiegħek
  4. Komunikazzjoni tad-dejta: Id-dejta ma tiġix ikkomunikata lil partijiet terzi ħlief b'obbligu legali.
  5. Ħażna tad-dejta: Bażi tad-dejta ospitata minn Occentus Networks (UE)
  6. Drittijiet: Fi kwalunkwe ħin tista 'tillimita, tirkupra u tħassar l-informazzjoni tiegħek.