2013/08/12

Activitie baten egoera aldaketak eta bitarteko metodoak

Android App bateko activitie bat egoeraz aldatzen den bakoitzean, metodo edo funtzio zehatz batzuei deituko zaie.
App-aren garapenean bere biziko garrantzia du metodo hauek ezagutzea, azken finean programatzaileak gailu mugikorrean jazotzen diren ebentu ezberdinen aurrean App-ak izango duen erantzuna eta erreakzioa aurreikusi behar baitu. Nola gorde, nola berreskuratu datuak App-ak fokua galdu badu???

I. ilustrazioan ikusten den bezala Android App baten bizi-zikloa bere egoeraren baitan definitzen diren eta logika bat jarraitzen duten metodoez osatzen da.

I. ilustrazioa: Activitie baten bizi-zikloan deitzen diren metodoak



Hona hemen metodo hauen deskribapen labur bat:

  • onCreate(): activitie-a lehen aldiz sortzean deitzen zaio eta interfaze grafikoa marrazteaz arduratzen da besteak beste. Funtzio honen exekuzioaren ondoren sistemak ezin du activitie-a eramaten duen prozesuarekin amaitu. Azkenik onStart() funtzioari deitzen zaio.
  • onStart(): erabiltzaileari interfazea juxtu erakutsi aurretik exekutatzen da. Azkenik onResume() funtzioari deitzen zaio.
  • onResume(): activitie-a LIFO pilaren goialdean kokatzen denean exekutatzen da, erabiltzaileak eta App-k oraindik elkarri eragin ezin diezaioketenean. Hemendik running egoerara pasatzen da App-a. Azpimarratzekoa da activitie-a pause edota stop egoera batetik badatorrela, metodo hau aurretik gordetako datuak e.a. berreskuratzeko erabili beharko dela.
  • onPause(): activitie-ari fokua kenduko zaionean deitzen zaio metodo honi. Funtzio hau activitie-aren egoera gordetzeko, prozesuak geratzeko (musika itzali adibidez) eta azken finean gailuaren baliabideak erabiltzen dituen edozer ezeztatzeko erabiliko da; hori bai, modu arin eta azkarrean egiteko programatu behar da, ostera lehen planura pasa behar duen Activitie-a ez da kargatuko, funtzio hau bukatu arte ez baita berriaren onResume()-a hasiko. Activitie-a running egoerara bueltatzen bada onResume()-ri deituko zaio eta stop egoerara pasatuz gero onStop()-i.
  • onStop(): activitie-a erabiltzailearentzat ikustezin bihurtzen denean deitzen zaio metodo honi. Activitie-a running egoerara bueltatzen bada onRestart()-ri deituko zaio, bestela activitie-a amaitutzat emango da onDestroy()-ri deituz.
  • onRestart(): stop egoeran zegoen activitie bat berriz running egoerara pasa behar duenean deitzen zaio metodo honi. Berriro ere activitie-aren prozesua deusezta ezina bihurtuko da sistemarentzat. Azkenik onStart()-i deituko zaio.
  • onDestroy(): activitie-a deuseztatu aurretik deitzen zaio metodo honi. Funtzio honen exekuazioaren ondoren datu guztiak galduko dira, beraz datuen iraunkortasuna bermatu nahi badugu funtzio honetan hartu behar dira hartu beharreko neurriak. Aurreko sarrera batean aipatu bezala finish() funtzioari deitzean edota sistemak hala behar duenean deituko zaio onDestroy()-ri.