Második feladatok – 2. rész

A feladataim közt volt átnézni az alkalmazás életcikluást és ennek debuggolását. Ez az első feladatok közt is szerepelt, de ekkor elegendő információt nem találtam. Viszont a most kapott win8 könyvben pár oldalon erről volt szó.

Az új életciklus modell szerint 3 állapota lehet egy alkalmazásnak:

  • működő alkalmazás,
  • megállított alkalmazás, vagy
  • terminált alkalmazás.

Amikor elindítjuk alkalmazásunkat, akkor lépünk az első állapotba, azaz a működő alkalmazásba. Ha “pihentetjük” az alkalmazásunkat, vagy egy másik alkalmazást indítunk, akkor az alkalmazásunk a megállított állapotba kerül át. Ha visszatérünk eredeti alkalmazásunkhoz, akkor ismét működik az alkalmazásunk. Ha túl régen használtuk az alkalmazást, vagy az operációs rendszer úgy találja, hogy az operatív memória fogyóban van, akkor véglegesen bezárhatja az alkalmazásunkat, mely az állapot mentésének hiányában elveszítheti a felhasználó a teljes munkafolyamatát. Ekkor az alkalmazásunk a terminált állapotban van.

A könyvben még megtalálható a windows 8 stílusú alkalmazások állapotai. Ezek a következők:

  • NotRunning
  • Running
  • Suspended
  • Terminated
  • ClosedByUser

A NotRunning akkor következik be, amikor először fut az alkalmazás, azaz a Windows Store-ból lett telepítve, vagy a Task Manager segítségével zárták be az alkalmazást, vagy felhasználói ki-/bejelentkezés történt, vagy a számítógépet újraindították. Ezeket úgy kezelhetjük, hogy a szokásos módon inicializáljuk és jelenítsük meg az alapértelmezett felhasználói felületet.

A Running akkor következik be, ha a programot a csempéje vagy valamelyik integrációs esemény segítségével indították el. Ekkor le kell kezelni az Activation eseményt.

A Suspended esetén a program pihentetésre került, mivel nem történt egy ideje felhasználói reakció. Ekkor szintén le kell kezelni az Activation eseményt.

A Terminatednél a rendszer kezd kifogyni az erőforrásaiból (pl. tápellátás, szabad operatív memóriaterület, stb…), így kénytelen az alkalmazásunkat pihentetett állapotból véglegesen leállítani. Ilyen esetben a mentett adatokat állítsuk vissza, törekedjünk a felhasználói munkafolyamat szakadásmentes, hiánytalan visszaállítására. Használjuk ehhez az alkalmazásszintű eseményeket!

A ClosedByUser akkor történik meg, ha több, mint 10mp telt el az Alt+F4 vagy bezárás gesztus alapú bezárási események óta. Ilyenkor inicializáljunk a szokásos módon, jelenítsük meg az alapértelmezett felhasználói felületet és indítsunk egy friss munkafolyamatot.

Pár fontos tényező:

  • A pihentetett állapotból lezárásra kerülő alkalmazásokat nem figyelmezteti a Windows 8. A bezárás oka csak a következő futtatáskor derül ki.
  • A Windows 8 stílusú alkalmazásokat úgy tervezték, hogy nem számolunk a felhasználó általi valódi bezárással (Alt+F4), inkább az operációs rendszerre bízzuk az alkalmazások kezelését. Ha mégis valódi bezárás történt, külön lekérdezhető az ApplicationExecutionState felsorolt típus segítségével.
  • Az alkalmazás eltávolításával egy időben az alkalmazáshoz tartozó lokális adatok is eltávolításra kerülnek.
  • Az alkalmazás a Contract & Extension megközelítés segítségével mélyebben integrálható, mely azt jelenti, hogy az konkrét céllal is indítható (pl: fénykép készítése, fájl megnyitása, keresés indítása, stb.). A speciális esetek lekezelése mind az OnLaunched eseményen keresztül történik.

 

Az animációkhoz kerestem anyagot, illetve próbáltam őket létre is hozni több-kevesebb sikerrel, a következő feladat ez lesz. Illetve a 3 layout vezérlőt nézem át tüzetesebben.

Leave a Reply