Alkalmazás életciklus android
Alkalmazás életciklus az Android szigorúan ellenőrzik, és függ a felhasználó igényei szerint, a rendelkezésre álló források, és így tovább .. Például egy felhasználó akar indítani a böngészőt. A döntés az alkalmazás elindul a fogadó rendszer. Bár az utolsó szó joga a rendszer ki van téve bizonyos meghatározott szabályok és a logika, amely észleli, hogy letöltheti az alkalmazást felfüggeszteni vagy megszüntetni működését. Ha az aktuális felhasználó dolgozik egy adott ablakot, a rendszer prioritást ad az adott alkalmazás. Ezzel szemben, ha az ablak nem látható, és a rendszer úgy dönt, hogy a kérelmet kell állnia annak érdekében, hogy további forrásokat mozgósítani kell állítani állásra, hogy alacsonyabb a prioritása. Androidon az erőforrások korlátozott, így Android szigorúbban szabályozott alkalmazások.
A fő alkalmazási módszereket életciklus
- védett void onCreate ()
- védett void onStart ()
- védett void onRestart ()
- védett void onResume ()
- védett void onPause ()
- védett void onStop ()
- védett void onDestroy ();
onCreate ()
onCreate () metódus létrehozásakor vagy újraindítás aktivitást. A rendszer indítása és leállítása az aktuális ablakot, attól függően, eseményeket. Belül ez a módszer, állítani egy statikus felület tevékenységet. Inicializ statikus tevékenységre vonatkozó adatok, társított adatok listák, stb Ez köti össze a szükséges adatokat és forrásokat. Beállítja megjelenése révén setContentView () módszer.
Ez a módszer betölti a felhasználói felület, helyezze a hivatkozás tulajdonságait az osztály kötődnek adatok ellenőrzése, szolgáltatások létrehozására és forgalommal. onCreate () metódus Bundle objektumot. tartalmazó állam a felhasználói felületen, akkor menti az utolsó hívás onSaveInstanceState felvezető. Visszaállítani a korábbi állapotot a GUI kell használni ezt a változót: belső onCreate () metódus vagy nyomós onRestoreInstanceState ().
inicializáláskor időigényes műveleteket kellene végezni egy háttérben folyamat, nem használ onCreate () módszer. Ellenkező esetben, akkor kap az ANR (Az alkalmazás nem válaszol, nem válaszol) párbeszédablak.
A módszer lehet ellenőrizni, hogy az alkalmazás fut először vagy helyreállított a memóriából. Ha a változó értéke savedInstanceState lehet null. alkalmazás indításakor először:
Egy változó tárolható currentBillTotal módszer onSaveInstanceState ():
Mert onCreate () mindig kell lennie egy kihívás onStart (). de mielőtt onStart () nem feltétlenül kell menni onCreate (). mivel onStart () is lehet nevezni, és hogy folytassa a felfüggesztett alkalmazást (alkalmazási módszer megáll onStop ()). Ha telefonál onStart () ablak nem látható a felhasználó számára, de hamarosan nyilvánvalóvá. Ez küldött közvetlenül megelőzően a tevékenység láthatóvá válik a felhasználó számára. Kísért a hívó onResume (). ha a tevékenység lesz az előtérben, vagy hívja onStop (). ha ez lesz rejtve.
onResume ()
Tartsuk szem előtt, hogy a rendszer kéri ezt a módszert, amikor a tevékenység kerül előtérbe, beleértve, ha először létre. Így meg kell végrehajtani onResume () inicializálni alkatrészek, regisztráció semmilyen vevőkészüléket vagy más folyamatok, hogy szabadulnak / szuszpendált onPause (), és végezzen más inicializálási meg kell történnie, ha a tevékenység az újonnan aktív.
Próbálja elhelyezni a viszonylag gyors és könnyű kódot alkalmazásához továbbra reagálnak, ha elrejti a képernyőn, illetve előtérbe.
Nem kell, hogy újra az UI állapotban vannak jelen, mivel ezek a funkciók vannak hozzárendelve feldolgozók onCreate () és a onRestoreInstanceState.
Például, miután a módszer onPause (). ahol felfüggesztettük a munka kamra (lásd alább.) Ismét elindítása kamrában:
Ebben az eljárásban, meg kell állítani az animáció és egyéb intézkedéseket, amelyek a CPU-t. Biztonságos mentett adatok, például, csapolt levelet, mert miután a munkavégzés tevékenység lehet szakítani figyelmeztetés nélkül. Ingyenes rendszer erőforrásait, mint például az adatok feldolgozását a GPS.
Próbálja elhelyezni a viszonylag gyors és könnyű kódot alkalmazásához továbbra reagálnak, ha elrejti a képernyőn, illetve előtérbe.
Ennek alapján az architektúra az alkalmazás, akkor is függessze fel az olyan szálak, eljárások vagy vevőkészülék, amíg a tevékenység megjelenik az előtérben.
Például az alkalmazott módszer, amikor a fényképezőgép az alábbi módon:
Ugyanakkor ne használja onPause () tárolja a felhasználói módosítások (például a bevitt személyes adatok formájában) állandó tárolására. A kivétel lehet, ha biztos benne, hogy a felhasználók elvárják változtatások automatikusan mentésre (például e-mail rajz). Azonban meg kell kerülnünk az intenzív munka onPause (). például egy rekordot egy adatbázisban, mert lassíthatja az átmenetet a következő tevékenység (helyette van, hogy készítsen egy nehéz teher alatt onStop () nyitási művelet).
Ha a tevékenység felfüggesztésre kerül, az összes komponens a memóriában tárolódnak, és megújulás nincs szükség újrainicializálja őket.
onStop () metódus, amikor az ablak láthatatlanná válik a felhasználó számára. Ez akkor fordulhat elő, amikor a pusztítás, vagy ha fut az egyéb tevékenységet (meglévő vagy új), blokkolja az ablak a jelenlegi tevékenységet. Mindig kíséri minden kihívásnak onRestart () metódust. ha a tevékenység visszatér, hogy befolyásolja a felhasználó, vagy egy olyan módszert onDestroy (). ha ezt a tevékenységet megsemmisül.
Megjegyzés: Ha a rendszerben van zárva a tevékenység, amikor leállt, akkor is megtartja a helyzetét tárgyak, mint például a szöveget EditText egy különleges lehetőség Bundle (formájában kulcs-érték), és visszaállítja őket, ha a felhasználó megy vissza ugyanarra a példányra aktivitást.
Ebben az eljárásban, akkor nem bonyolult műveleteket adatmegőrzési: a felfüggesztés komplex animációk, streaming, követés az érzékelők által mért GPS kéréseket, időzítő, szolgáltatások vagy más folyamatok, amelyek csak fel kell frissíteni a felhasználói felületen. Semmi értelme, hogy erőforrásokat (CPU és a hálózati forgalom) naprakésszé teszi a felületet, míg a nem látható a képernyőn. Módszerek alkalmazása onStart () vagy onRestart (), hogy folytassa, vagy indítsa újra ezeket a folyamatokat, ha a tevékenység ismét láthatóvá válnak.
Ha nincs elegendő memória rendszer képes elpusztítani egy látens tevékenység, megkerülve onStop () metódus hívás onDestroy () metódust.
onRestart ()
Ha az ablakot, hogy az előtérben a hívás után onStop (). Ebben az esetben az úgynevezett onRestart () módszer. Ie Ez után nevezték el a tevékenység leállt, és a felhasználó már újra kell indítani. Mindig kísért hívja onStart ().
onRestart előtt metódushívás onStart () (kivéve az első). Használd a különleges műveleteket kell elvégeznie, ha újraindítja tevékenység keretében a „teljes” állapotban van.
onDestroy ()
A módszer az úgynevezett végén a munkatevékenység, az eljárás hívás kivitelben (), vagy ha a rendszer tönkreteszi a példány tevékenység az erőforrások felszabadítása. Ez a két forgatókönyv megsemmisülés lehet meghatározni hívja isFinishing (). Úgynevezett elpusztítása előtt aktivitást. Ez az utolsó kérés, ami lesz aktív a rendszerben. Ha egy bizonyos ablak a felső helyzetben a verem, de láthatatlan a felhasználó és a rendszer úgy dönt, hogy töltse ki az ablakot, az úgynevezett onDestroy () metódust. Ebben az esetben az eljárás törli az összes statikus adatokat tevékenységet. Minthogy az összes felhasznált erőforrás.
Mivel az összes szükséges műveletek a felszabadulás a források tettél onStop () metódust. akkor ez a módszer akkor biztosítani, és ellenőrizze újra az összes neosvobozhdonnye források.
A gyakorlatban gyakran kell foglalkozni a módszerek onCreate (). onResume () és onPause (). onCreate () metódus kerül meghívásra, amikor létrehozza a felhasználói felület dolgozni az ablakot. Ez a módszer lehetővé teszi, hogy kötődnek az adatokat a komponenseket, és csatlakozni a eseménykezelőt UI komponensek. Segítségével onPause (), akkor mentse fontos információt az adatbázisba az alkalmazás adatait. Ez az utolsó biztonságos módszer, amely nevezhető, mielőtt a rendszer befejezte egy állásra. onDestroy () metódus nem feltétlenül okozza, így nem hivatkozhat e módszer végrehajtása során kritikus logika.
A jobb áttekinthetőség létre egy példát, ahol az egyes módszerek életciklus készít felugró üzenet, valamint a biztonsági háló a naplóbejegyzés. Lehetünk tanúi a teljes életciklusa alatt.
A kódot az eljárás:
A projekt futtatásához és nyomon követése üzeneteket. Ezek felbukkan a megfelelő sorrendben, így egy ötlet az alkalmazás-életciklus. Továbbá, az üzenetek kerül adásba ablakban logcat a 6.Android lapon a stúdióban. Kérjük, vegye figyelembe a következő pontokat. Ha az alkalmazás fut, akkor kattintson az első gombot, hogy a szöveget a TextView. Ezután nyomja meg a Home gombot (not Back!), Hogy a kezdőképernyőn. Ezután indítsa újra a alkalmazást. Látni fogja, hogy a kérelem nem hívja onCreate () metódust. és a szöveg a TextView arról tanúskodnak, hogy a kérelem nem lett lezárva, de csak minimális. Ez egy nagyon fontos pont, hogy meg kell érteni. Megértése ezeket a dolgokat segít felépíteni az alkalmazás logikáját helyes.
Nyomja meg a Vissza gombot, hogy kilépjen a kérelmet
Home gomb megnyomásakor
Megnyomása után a Home gombot, amikor az alkalmazás elindításakor a listából nemrég megnyitott alkalmazások keresztül vagy egy ikon
Amikor elkezd egy másik alkalmazást az értesítési területen, vagy nyissa meg a Beállítások alkalmazást
Csattanó Vissza egy másik alkalmazás vagy a beállításokat, és az alkalmazás vált újra láthatóvá.
A párbeszédablak
A párbeszédablak bezárul
A felhasználó fogadja a hívást
A képernyő ismét bekerült
A kínai lemezeket néha megfigyelhető, amikor valamilyen módszerrel sikerül.
A forgatógomb aktivitást áthalad a lánc a különböző államokban. Az eljárás a következő.
onPause ()
onStop ()
onDestroy ()
onCreate ()
onStart ()
onResume ()
Az eljárás hívások
Miután onCreate () - onStart ()
Miután onRestart () - onStart ()
Miután onStart () - onResume () vagy onStop ()
Miután onResume () - onPause ()
Miután onPause () - onResume () vagy onStop ()
Miután onStop () - onRestart () vagy onDestroy ()
Miután onDestroy () - semmi