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:
Avvenimenti taċ-ċiklu tal-ħajja
- 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.
- 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 ().
- ibda mill-ġdid ()
- Qabel onStart () meta niġu minn sejħa għal onStop ().
- jerġa 'jibda ()
- L-attività tibda jirrispondu għall-interazzjoni utent.
- onPause ()
- L-attività se tieqaf tirrispondi għall-interazzjoni tal-utent.
- onStop ()
- L-attività marret għal kollox għal sfond.
- 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
Kun l-ewwel li tikkummenta