Ezzel a poszttal adósok vagyunk már egy ideje,ugyanis eddig nem írtuk le részletesen, hogyan is működik a multitasking az iPhone OS 4.0-ban. Hallottunk olyan kifejezéseket, hogy Task Completion meg Fast App Switching, ideje végigvenni, mit is jelentenek ezek.
Alapesetben, ha egy alkalmazást a háttérbe küldünk, az felfüggesztésre kerül. Megmarad a rendszermemóriában, de leáll. Ez a legegyszerűbb és leggyorsabb módja a programok közötti váltásnak, a rendszer lementi az app teljes állapotát, így amikor visszatérünk a tetszhalott állapotban lévő játékhoz, ott folytathatjuk, ahol abbahagytuk. Ezt a folyamatot hívja az Apple Fast App Switchingnek.
Ez eddig nagyjából olyan, mint például az Android esetében. Az Androidban azonban, ha egy alkalmazás ennél többet akar, és futni szeretne a háttérben, egy kliens-szerver kapcsolaton keresztül csatlakozik egy mindig háttérben futó alkalmazáshoz, ami végrehajtja azokat a feladatokat, amivel megbízza a program.
Az Apple azonban nem akart ilyen megoldást, ők sajátos szabályrendszert alkottak a háttérben futó folyamatokhoz.
Ha egy alkalmazás be akarja fejezni azt a folyamatot, amit a bezárása előtt elkezdett (például egy fájl másolása), egy bizonyos időt kérhet a rendszertől, amíg befejezi a feladatot. Amikor ez az idő letelik, vagy a feladat elvégzésre kerül, az alkalmazást felfüggeszti a rendszer. Ezt nevezik Task Completionnek.
Ha egy alkalmazás még többet akar, vagyis továbbra is futni akar folyamatosan a háttérben, két választás áll előtte. Vagy az eddig is megismert Notification-rendszert használja, vagy választ a három lehetőségből, amit a rendszer felajánl, és amiket teljesen különböző módon kezel: Background Audio, Voice over IP (VoIP), Background Location.
A Background Audio esetében a program jelzi, hogy a háttérben tovább akar zenélni, UI nélkül lehetősége van erre. A lock screenen pedig lehetőség van ezeket az alkalmazásokat úgy irányítani, mint ahogy eddig az iTunes-t iPodot.
A VoIP-programok esetében a rendszer felügyeli a hálózati kapcsolatot, miközben az app felfüggesztésre kerül. Amennyiben egy hívás folyamatban van, az továbbra is él, miközben más alkalmazásokba lépünk át. Ha pedig valamilyen új esemény történik, például egy bejövő hívás, a rendszer felébreszti az appot, ami visszakapja a lehetőséget a hálózati kapcsolatának irányítására.
A legtöbbek által várt Background Location kétféle módon működhet. Az első esetében az alkalmazás nem igényel állandó pontos helymeghatározást, ebben az esetben a háromszögeléses módszerrel figyeli a helyzetünket a rendszer, miután az alkalmazást felfüggesztettük, és ha 500-1000 métert változott a helyzetünk, a programot egy rövid időre felébreszti a rendszer, elvégezheti a megfelelő tevékenységeket az új információ birtokában, aztán visszafekhet aludni. A másik lehetőség az, amit a navigációs szoftverek igényelnek, vagyis az állandó pontos helymeghatározás - ezek teljes mértékben futhatnak a háttérben. A felső menü barban elhelyezett nyilacska mutatja, ha egy alkalmazás kéri a helyzetünket, így mindig tudhatjuk, ha esetleg egy erőforrászabáló GPS-programot felejtettünk bekapcsolva.
A Notification-rendszer kibővül egy új taggal, ez a Local Notifications. Az eddig megismert Push Notificationnel szemben ez nem igényel külső szervert ahhoz, hogy üzeneteket küldjön nekünk egy meghatározott esemény bekövetkezésekor, lerendezi házon belül. Ez akkor használható leginkább, ha az értesítés időhöz kötött, például egy naptárjelzés vagy egy ébresztőóra (az Apple saját programjai eddig is megkapták ezt a lehetőséget, de most külső programok is kérhetik). Az időpontot az alkalmazás a felfüggesztésekor lerendezi a rendszerrel, ami ezután tudja, mikor kell felébreszteni az appot.
Ha egy alkalmazás a fentieken kívül más folyamatot akar indítani a háttérben, nem lesz rá lehetősége. Az Apple a fenti módszerrel biztosítja, hogy a párhuzamos futtatás sem a teljesítményben, sem az akku élettartamában ne jelentsen sokkoló változást.
A bejegyzés trackback címe:
Kommentek:
A hozzászólások a vonatkozó jogszabályok értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a Felhasználási feltételekben és az adatvédelmi tájékoztatóban.