Stále ještě spoustu lidí neví, jak funguje multitasking v iOS. Pro začátek je však nutné upozornit, že se nejedná o skutečný multitasking ale o velice chytré řešení které nezatěžuje systém ani uživatele.
Často lze slyšet pověry, že aplikace běžící v iOS na pozadí zaplňují operační paměť, což vede ke zpomalení systému a snížení výdrže baterie, proto by je měl uživatel vypínat manuálně. Lišta pro multitasking ve skutečnosti neobsahuje seznam všech běžících procesů na pozadí ale pouze naposledy spuštěné aplikace. Uživatel se tedy nemusí starat o procesy běžící na pozadí s výjimkou několika málo případů. Když stisknete Home button, tak se aplikace většinou uspí, nebo se ukončí, takže nadále nezatěžuje procesor ani baterii a v případě potřeby uvolní potřebnou paměť.
Nejedná se tedy o plnohodnotný multitasking kdy vám běží desítky procesů.V popředí běží vždy jen jedna aplikace, která se v případe potřeby pozastaví nebo úplně vypne. Na pozadí pak běží jen několik podružných procesů. Proto se u iOS setkáte s pádem aplikace jen málokdy, například Android je zahlcen běžícími aplikacemi o které se uživatel musí starat. To jednak znepříjemňuje práci se zařízením a na druhou stranu způsobuje například pomalé spouštění a přechody mezi aplikacemi.
Typ běhu aplikace
Aplikace na vašem iOS zařízení se nachází v jednom z těchto 5 stavů :
- Běží: aplikace je spuštěna a běží na popředí
- Na pozadí: je stále spuštěna ale běží na pozadí ( můžeme používat další aplikace )
- Pozastavena: Pořád využívá operační paměť ale není spuštěna
- Neaktivní: aplikace je spuštěna ale nepřímá příkazy ( například když uzamknete zařízení se spuštěnou aplikací )
- Neběží: Aplikace byla ukončena nebo nebyla spuštěna
Zmatky nastanou, jakmile aplikace přejde na pozadí, aby nerušila. Když stisknete Home button nebo použijete gesto pro ukončení aplikace (iPad) tak aplikace přejde na pozadí. Většina aplikací je pozastavena během několika vteřin (Ukládají se do operační paměti iZařízení, aby mohli být rychle spuštěny, tolik nezatěžují procesor a tím šetří výdrž baterie) Mohli byste si myslet, že pokud aplikace nadále využívá paměť, budete jí muset odstranit ručně pro její uvolnění. Ale to vy dělat nemusíte, protože to za vás iOS udělá sám. Máte-li na pozadí pozastavenou náročnou aplikaci, jakou je třeba hra, která využívá velkou část operační paměti , iOS ji v případě potřeby automaticky odstraní z paměti a vy ji znovu spustíte klepnutím na ikonu aplikace.
Žádný z těchto stavů se neprojeví v liště multitaskingu, panel zobrazuje pouze seznam naposledy spuštěných aplikací bez ohledu na to, zda je aplikace zastavená, pozastavená nebo běží na pozadí. Můžete si také všimnout že aplikace která je právě spuštěná se v Multitasking panelu neobjeví
Úkoly na pozadí
Normálně, když stisknete Home button, tak aplikace poběží na pozadí a pokud jí zrovna nepoužíváte, tak se do pěti vteřin automaticky pozastaví. Takže pokud stahujete třeba podcast, tak to systém vyhodnotí jako spuštěnou aplikaci a odloží ukončení o deset minut. Nejpozději po deseti minutách se proces uvolní z paměti. Zkrátka se nemusíte obávat že stiskem Home Button přerušíte svoje stahování, pokud není třeba více jak 10 minut pro jeho dokončení.
Neurčitý běh na pozadí
Při nečinnosti systém aplikaci ukončí do pěti sekund a v případě stahování se ukončení odloží o deset minut. Existuje však malé množství aplikací které vyžadují běh na pozadí. Zde je pár příkladů aplikací které mohou v iOS 5 běžet na pozadí neomezeně dlouhou dobu:
- Aplikace které přehrávají zvuk a musí se na chvíli přerušit (pozastavení hudby při telefonátu apod.),
- Aplikace které sledují vaši polohu (navigační software),
- Aplikace přijímající VoIP hovory, například pokud používáte Skype tak můžete přijmout hovor i když je aplikace na pozadí,
- Automatické stahování ( například Newsstand ).
Všechny aplikace by měli být ukončeny, pokud již nevykonávají daný úkol (například stahování na pozadí). Existují však výjimky, které běží na pozadí nepřetržitě, například nativní aplikace Mail. Pokud jsou spuštěny na pozadí, tak zahlcují paměť, využití procesoru nebo snižují výdrž baterie
Aplikace, které mají povoleno běžet na pozadí neomezeně dlouhou dobu, mohou dělat cokoliv jako když jsou spuštěné, a to od přehrávání hudby až po stahování nových epizod Podcastů.
Jak jsem již uvedl, uživatel nikdy nemusí ukončovat aplikace běžící na pozadí. Jedinou z těchto výjimek je, když aplikace běžící na pozadí spadne nebo se ze spánku neprobudí správně. To pak může uživatel ukončit aplikace ručně v liště multitaskingu, ale to se stává zřídkakdy.
Obecně tedy platí, že nemusíte řídit procesy na pozadí, protože se o ně systém postará sám. Proto je iOS tak svěží a rychlý systém.
Z pohledu vývojáře
Aplikace může v rámci multitaskingu reagovat celkem šesti různými stavy:
1. applicationWillResignActive
Tento stav v překladu znamená, že aplikace bude v budoucnu (otázka několika málo milisekund) rezignovat na post aktivní aplikace (tedy aplikace v popředí). Toto se děje například při příjmu hovoru v době používání aplikace, ale zároveň se tato metoda tedy tento stav vyvolá i před přechodem aplikace do pozadí, tedy je potřeba s těmito změnamy počítat. Tato metoda je vhodná také pro to aby například právě při příchozím hovoru pozastavila veškerou činnost, kterou provadí a počkala až na ukončení hovoru.
2. applicationDidEnterBackground
Stav indikuje, že aplikace přešla do pozadí. Vývojáři by tuto metodu měli využít k pozastavení všech procesů, které nutně nemusí běžet na pozadí a měli by vyčistit paměť od nevyužívaných dat a dalších procesů, například by měli ukončit platnost časovačů, vymazat z paměti načtené obrázky, které nebudou nutně potřeba, anebo ukončit spojení se servery, pokud to pro běh aplikace není kritické, aby spojení dokončovala i na pozadí. Když je v aplikaci metoda vyvolána, v podstatě by měla sloužit k úplnému pozastavení aplikace, pokud některá její část není požadována aby běžela na pozadí.
3. applicationWillEnterForeground
Tento stav je opakem stavu prvního, kdy aplikace bude rezignovat na aktivní stav. Stav jednoduše znamená, že uspaná aplikace během několika následujících milisekund bude obnovena z pozadí a zobrazí se v popředí. tuto metodu by vývojáři měli využít k obnovení všech procesů, které byly neaktivní v době, kdy aplikace byla na pozadí. Mělo by dojít k obnovení spojení se servery, znovunastavení časovačů, načtení obrázků a dat do paměti a další potřebné procesy se mohou obnovit těsně před tím, než uživatel znovu uvidí načtenou aplikaci.
4. applicationDidBecomeActive
Stav indikuje to, že aplikace se po obnovení do popředí stala právě aktivní. Toto je metoda, která se dá využít k dodatečným úpravám uživatelského rozhraní nebo obnovení UI do původního stavu apod. To se vlastně děje ve chvíli, kdy aplikaci už uživatel na displeji vidí, tedy je potřeba s rozvahou určovat, co se děje v metodě této a v metodě předchozí. Jsou volány po sobě s rozdílem několika málo milisekund.
5. applicationWillTerminate
Tento stav se děje několik milisekund před ukončením aplikace, tedy před skutečným ukončením aplikace. Buď ručně z multitaskingu, nebo při vypínání přístroje. Metoda by měla být využita k uložení rozpracovaných dat, k ukončení všech činností a odstranění dat, které již nebudou potřeba.
6. applicationDidReceiveMemoryWarning
Právě poslední stav je nejdiskutovanější. Je zodpovědný za to, že v případě nutnosti iOS odstraní z paměti aplikaci, pokud zbytečně využívá systémových prostředků. Nevím konkrétně, co dělá iOS s aplikacemi v pozadí, ale pokud potřebuje po aplikaci, aby uvolnila prostředky jiným procesům, varováním paměti ji vyzve, aby uvolnila prostředky, kterými disponuje. V aplikaci se tedy tato metoda vyvolává. Vývojáři by ji měli implementovat tak, aby se aplikace vzdala paměti, kterou má přidělenou, uložila vše rozpracované, vymazala nepotřebná data z paměti a jinak adekvátně uvolnila pamět. Je pravda, že hodně vývojářů, třeba začínajících, na takovéto věci nemyslí nebo jim nerozumí a pak se může dít, že jejich aplikace ohrožuje výdrž baterie a/nebo zbytečně konzumuje systémové prostředky, a to i na pozadí.
Verdikt
Těchto šest stavů a k nim přidružené metody jsou v pozadí celého „multitaskingu“ v iOS. je to skvělý systém, pokud vývojáři neignorují fakt, že je potřeba zodpovědně přistupovat k tomu, co aplikace natropí na přístrojích jejich uživatelů, pokud jsou minimalizovány nebo dostanou varování od systému a tak dále.
Zdroj: Macworld.com
Autoři: Jakub Požárek, Martin Doubek (ArnieX)
Máte také problém k řešení? Potřebujete poradit nebo třeba najít tu správnou aplikaci? Neváhejte a kontaktujte nás přes formulář v sekci Poradna, příště zodpovíme třeba právě váš dotaz.
Zdravíčko článek opravdu přkný ale zajímalo by mě jestli to máte nějak technicky podložené. Protože již několikrát jsem řešil večer před spaním baterku a stalo se že při vypnuté wifi a mobilních datech to sebralo víc než v jiném případě s vypnutou wifi a pouze 3G.
Bohužel zkušenost je taková, že v iOS se aplikace musejí vypínat ručně a systému už se tak dobře jako dřív nevede.
iPhona jsem vyměnil za Windows Phone (Samsung Omnia W za 6200,-) a rychlost systému je na úplně jiné úrovni.
Obávám se, že až přijdou Metro tablety s Windows 8, vyměním i iPad…
@007 – ano, pokud srovnavate stary iPhone3G s novymi WP, pak ano (kdo by to cekal, ze?) WP bude o fous rychlejsi. Jinak pohadky o karlulce vam moc dobre nejdou a bylo vhodne srovnavat aktualni HW. WP7 jsem taky poridil a nakonec skoncil u 4s, ktery predstavuje zcela jiny level pouzitelnosti nez WP7. Tak preji prijemne a nekonecne skrolovani dlazdicemi.
Plně souhlasím s Pajou
ja bych zase prispel z trosku jineho soudku – Samsung Galaxy S a iPhone 4 – rekl bych srovnatelne co se tyce veku? V te dobe iOS 4, a je co se tyce pouzielnosti a rychlosti nekde jinde nez Android, koncept prace s aplikacemi ma Apple vyreseny velice dobre, to same uz vsak neplati s Androidem. Nakonec jsem stejne skoncil u 4S a nemam jedine vytky, protoze „it just works“ .. a pracuje velice svizne!
Teorie je krásná… V praxi ale přesto aplikace v liště zavírám ;)
Díky, moc zajímavé, pragmatické, interesantní, nepostrádá to švih a hloubku. Signifikantně podtrhující obsesi dnešní mládeže touto zapovězenou značkou! Ovšem díky za ní, stejně jako za tento článek.
Clanek je uplne spatne.
Aplikace se po stisknuti Home tlacitka neukonci, jak je mylne uvedeno, ale pozastavi. Tj. rozhodne se neodstrani z pameti a neukonci. Jen pozastavi beh, iOS da teto aplikaci 0% procesoroveho casu. Rozhodne se nikam „neswapuje“ do pameti iZarizeni, jak je v clanku uvedeno. Je to prave diky tomu, aby bylo mozne vyuzit ten app switching.
Aplikace je odstranena z pameti az ve chvili, kdy ma telefon malo pameti pro beh dalsich aplikaci s vyssi prioritou (typicky jina aplikace bezici na popredi).
V prvním případě máte pravdu, jednalo se o chybu v překladu. Co se týče swapování, o tom zde není řeč, bavíme se o operační paměti, nikoliv o úložném prostoru v iOS zařízení.
obraz aplikace se uloží do paměti na omezenou dobu dokud nebude znova vyvolána příkazem ( viz. 13,7 GB z 16 GB : těch 2,3 GB je vyhrazeno pro systém a pozastavení aplikací )
Tak je potřeba rozlišovat aplikace jako jsou Navigace, Skype a jím podobné, tyto aplikace i na pozadí zůstávají aktivní, respektive určitá funkce se neukončí a nadále například posílá data o svém savu, nebo informace o poloze. Nebo jako Vokul v rezimu pord poslouchej a multitasking stále poslouchá i na pozadi.
Tyto aplikace vybíjí baterku a je potreba je rucne ukoncit a necekat na iOS. u ostatních není třeba, tam jen v případě že se aplikace sekne.
Nemohu s článkem souhlasit. Min. na iPadu 1. generace (iOS 5.0.1) je zřetelně poznat, zda mám v multitasking liště hodně „otevřených“ aplikací nebo jen pár. iOS se sice snaží paměť čistit, ale evidentně to nestačí – malá velikost RAM je asi jeho největší slabinou.
tak hodně záleží na systému a použitém hardware, je celkem logický že to bude horší na iPad 1 s iOS 5.0.1 než kdyby to jelo na iPadu 2.generace
Je mi lito pratele, toto je popis IDEALNIHO zpusobu, jak by to melo fungovat. Bohuzel realita je uplne jina a vedeli byste to, kdybyste Apple vyrobky pouzivali, alespon tak jak ja (tj. obcas).
„Často lze slyšet pověry, že aplikace běžící v iOS na pozadí zaplňují operační paměť,“
To neni povera, to je proste fakt. Sam to ostatne tvrdite ve clanku.
„Jak jsem již uvedl, uživatel nikdy nemusí ukončovat aplikace běžící na pozadí.“
NESMYSL. To je proste blabol, jablecna propaganda, nezlobte se na me.
„Ale to vy dělat nemusíte, protože to za vás iOS udělá sám. Máte-li na pozadí pozastavenou náročnou aplikaci, jakou je třeba hra, která využívá velkou část operační paměti , iOS ji v případě potřeby automaticky odstraní z paměti a vy ji znovu spustíte klepnutím na ikonu aplikace.“
Neni pravda. Situace je trochu jina. Typicky priklad – mam spustene narocne aplikace na pozadi, treba hry. Pustim prohlizec, otevru par tabu -> potreba vice pameti. Co se stane? Narocne aplikace na pozadi zustavaji, naopak SAM PROHLIZEC SPADNE. Pokud ty narocne aplikace rucne ukoncim, prohlizec funguje dlouhodobe bez problemu.
To je praxe, ne teorie. A divim se, ze jako dlouhodobi uzivatele Apple vyrobku to dodnes nevite.
Díky, je to velice dobře popsaný a dobře vysvětlené. Celkem jsi mi pomohl ;-) ♥
Jen na úvod, nejsem pro ani proti iOS, tak stejně jako u Androidu, ale je tady pár zvláštních věcí, pokud jak tady je psáno: “ se u iOS setkáte s pádem aplikace jen málokdy“ tak u Androidu asi aplikace padají jednou za rok :-P
http://dotekomanie.blog.mobilmania.cz/2012/02/stabilita-ios-vs-android/
To sice ano ale těch případů kdy je třeba ukončit aplikaci ručně je opravdu minimum, použil jsem asi tak jednou ? ;-) a dávat sem odkaz na srovnávací test z mobilmanie je celkem zbytečné, až budu chtít číst o reklamě co platil google tak se mrknu tam ;-) všem si do ruky jakejkoli android telefon a nepoběží čistě, teda s výjimkou galaxy nexus kterýmu je systém šitej víceméně na míru. Celkově je android katastrofa
@Mek – Vyrobky Apple pouzivam denne uz nekolik let a tohle se mi jeste nestalo, takze ta tva teorie nejak nefunguje.
OT:
@redakce – Je videt, ze se na webu stale nejak pracuje nebo se s nim neco deje, ale mam pocit, ze neni tydne, aby vsechno fungovalo jak ma. A to uz sem chodim skutecne malo, protoze ta nova podoba mi nevyhovuje. Vyuzival jsem alespon mobilni verzi na iPhonu, ale ta mi ted nefunguje vubec – jak to? Momentalne zlobi odpovidani na prispevky v komentarich.
@SteveJSF Bohužel ne vždy se věci dějí tak, jak bychom si přáli. Co se týče odpovědí, ty rozbil nový SEO plugin, je to aktuálně v řešení.
WP-Touch nám také z nějakého důvodu vypověděl službu, tak jsme se rozhodli, že raději vymyslíme lepší řešení, než je tento plugin. Můžete se tedy brzy těšit na další novinku :-)
Pekný článok. Čo sa týka praxe, chcel by som povedať že z viacerými vecami súhlasím a väčšinou to tak ako je uvedené aj funguje, no bohužiaľ stále sa nájdu zle napísané aplikácie ktoré sa korektne nesprávajú a vtedy nastávaju prípady ako tu poznamenaliniektorý čitatelia. Myslím si, že veľmi dobrým príkladom je Skype, ja z praxe viem že na pozadí beží stále (a to je v poriadku a tak to aj má byť) no problém je že táto aplikácia veľmi vybíja baterku prístroja a to už sa mi v poriadku nevidí. Naopak aplikácie ako je Facebook, Badoo a pod. taktiež bežia stále na pozadí no ich odber je takmer nezaznamenateľný (aspoň ja žiadny nepozorujem). Takže si myslím že chyba je v jednotlivých aplikáciach. Ak by sa vedelo v ktorých, stačilo by vypínať ručne len ich!
Takže prax je taká že facebook beží vkuse a skype len keď je potreba.
No na druhej strane ak potrebujem šetriť baterku a viem že musím udržať iPhone čo najdlhšie „nažive“, aj ja vypínam všetko nepotrebné v multitaskingu, no zväčša to nemá veľký vpliv, ale podľa potreby si obmedzím 3G, celý mobilný internet, WiFi, polohové služby, lietadlový režim, silu osvetlenia atď. No v rámci rutiny vypínam aj vyššie spomínané aplikácie v multitaskingu.
Takže osobne si myslím že článok je pravdivý, bohužiaľ niektorý programátori so svojimi aplikáciami tieto veci vyvracajú, pretože ich aplikácie sú nekorektné a na to sú podľa mňa len dve riešenia 1. Ak to je možné aplikáciu nepoužívať a nájsť jej alternatívu ak je to možné, alebo 2. Ak to možné nieje viď napr. Skype napísať to daným programátorom v reporte a dúfať že s tým niečo urobia.
Možná je zbytečné aplikace ručně vypínat, přesto to však dělám. Zkusil jsem i systém aplikace nevypínat, nechat je běžet (resp. nechat je uspané v pozadí) a výdrž baterky byla o hodně nižší, byl nutný i restart iPadu 2 po cca třech týdnech, reagoval zpomaleně. Takže aplikace vypínám ručně, baterka vydrží déle, aktuálně jsem restartoval naposledy na štědrý den a běží v pohodě.
Ostatně to samé dělám i v Mac OS X, aplikaci, kterou nepotřebuji, prostě vypnu (CMD+Q), je to lepší než aby byla uspaná v pozadí a žrala zbytečně RAM (se kterou OS X navíc neumí moc dobře pracovat). Mám sice RAM málo, jen 8 GB, ale ve Windows 7 se mi s 8 GB nestalo, že by systém reagoval zpomaleně nebo swapoval, v OS X je to celkem častý jev (počítač jsem nikdy nevypínal, dělám to i s Macem, takže měsíc i více up time není výjimkou, problém je, že Maca musím občas preventivně restartovat kvůli uvolnění RAM a „zvýšení rychlosti“, Windows 7 toto nepotřebují).
Spíš by mě zajímalo, jak aplikaci opravdu odstřelit. Stalo se mi, že aplikace (konkrétně na Geocaching) se dostala do stavu, kdy načítala něco z mateřského serveru a v tomto stavu uvízla. Home button fungoval, po novém spuštění se to vrátilo do zatuhlého stavu (tam kde jsem skončil). Ruční ukončení (do nabídky multitastingu, přidržet ikonu a mínusem zavřít) = aplikace zmizela, po novém spuštění se otevřela v původním stavu tam kde mi to vytuhlo. Pozavíral jsem tedy vše, vypnul telefon, zapnul, dvojklik HOME a hle – aplikace tam byly všechny jako před jejich zavřením těsně před vypnutím. Nepomohl ani restart – držet home a vrchní než to chcípne. Jediné co pomohlo je odebrat aplikaci z telefonu, restart, a její novou instalaci do telefonu. Nějak jsem to nepobral.
Tento Multitasking management funguje a je hodně na vývojářích jak se s těmito stavy vyrovnají. Pro zájemce o detailnější a odbornější popis celé situace zde napíšu jak se to má.
Aplikace může reagovat celkem na 6 stavů a tyto stavy jsou:
applicationWillResignActive
applicationDidEnterBackground
applicationWillEnterForeground
applicationDidBecomeActive
applicationWillTerminate
applicationDidReceiveMemoryWarning
Nyní se pokusím tyto stavy popsat blíže.
applicationWillResignActive – tento stav v překladu znamená, že aplikace bude v budoucnu (otázka několika málo milisekund) rezignovat na post aktivní aplikace (tedy aplikace v popředí) toto se děje například při příjmu hovoru v době používání aplikace, ale zároveň se tato metoda tedy tento stav vyvolá i před přechodem aplikace do pozadí tedy je potřeba s těmito změnamy počítat. Tato metoda je vhodná také pro to aby například právě při příchozím hovoru pozastavila veškerou činnost, kterou provadí a počkala až na ukončení hovoru.
applicationDidEnterBackground – tento stav indikuje, že aplikace vešla do pozadí, vývojáři by tuto metodu měli využít k pozastavení všech procesů, které nutně nemusí běžet na pozadí a měli by vyčistit paměť od nevyužívaných dat a dalších procesů například by měli ukončit platnost časovačů, vymazat z paměti načtené obrázky, které nebudou nutně potřeba a nebo ukončit spojení se servery pokud to pro běh aplikace není kritické aby spojení dokončovala i na pozadí. V podstatě tato metoda když je v aplikaci vyvolána by měla sloužit k úplnému pozastavení aplikace pokud některá její část není požadována aby běžela na pozadí.
applicationWillEnterForeground – tento stav je opakem stavu prvního kdy aplikace bude rezignovat na aktivní stav. Tento stav aplikace jednoduše znamená, že uspaná aplikace během několika následujících milisekund bude obnovena z pozadí a zobrazí se na popředí (aplikace vstoupí do popředí), tuto metodu by vývojáři měli využít k obnovení všech procesů, které byly neaktivní v době kdy aplikace byla na pozadí, mělo by dojít k obnovení spojení se servery, znovunastavení časovačů, načtení obrázků a dat do paměti a další potřebné procesy se mohou obnovit těsně před tím, než uživatel znovu uvidí načtenou aplikaci.
applicationDidBecomeActive – tento stav indikuje to, že aplikace se po obnovení do popředí stala právě aktivní, toto je metoda, která se dá využít k dodatečným úpravám uživatelského rozhraní nebo obnovení UI do původního stavu apod. tato metoda se vlastně děje ve chvíli kdy aplikaci už uživatel na displeji vidí, tedy je potřeba z rozvahou určovat co se děje v metodě této a v metodě předchozí. Jsou volány po sobě s rozdílem několika málo milisekund.
applicationWillTerminate – tento stav se děje několik milisekund před ukončením aplikace, tedy před skutečným ukončením aplikace. Buď ručně z multitaskingu, nebo při vypínání přístroje. Tato metoda by měla být využita k uložení rozpracovaných dat a k ukončení všech činností a odstranění dat, které již nebudou potřeba.
applicationDidReceiveMemoryWarning – a toto je stav, o kterém se tu diskutuje hodně, že v případě nutnosti iOS odstraní z paměti aplikaci, pokud zbytečně využívá systémových prostředků. Nevím konkrétně co dělá iOS s aplikacemi v pozadí, ale pokud potřebuje po aplikaci aby uvolnila prostředky jiným procesům vyzve jí varováním paměti aby uvolnila prostředky, které má v držení. Tedy se v aplikaci vyvolá tato metoda a to by vývojáři měli implementovat tak aby se aplikace vzdala paměti, kterou má v držení, uložila rozpracované a vymazala nepotřebná data z paměti a jinak adekvátně uvolnila pamět. Je pravda, že hodně vývojářů, třeba začínajících na takovéto věci nemyslí nebo jim nerozumí a pak se může dít, že jejich aplikace ohrožuje výdrž baterie a/nebo zbytečně konzumuje systémové prostředky i v pozadí. Nevím jak se iOS zachová když aplikace po obdržení memory warningu neudělá nic a dále konzumuje systémové prostředky jako předtím.
Těchto pár stavů a tomu přidružených metod je v pozadí celého „multitaskingu“ v iOS… je to skvělý systém pokud vývojáři neignorují to, že je potřeba zodpovědně přistupovat k tomu co aplikace natropí na přístrojích jejich uživatelů pokud jsou minimalizovány nebo dostanou varování od systému a další…
Doufám, že tento stručný popis pomůže porozumět tomu jak se aplikace podílí na tom aby vše hladce fungovalo. Takže je skoro možné říci, že je to chybou nesprávného používání uživatelem což lze chápat jako – používáte-li aplikace povětšinou zdarma od amatérských vývojářů ve velkém množství tak vám iOS zařízení poběží hůř, než když používáte ve velkém množství zdarma i placené aplikace od zkušených či profesionálních vývojářů. Tím nechci říct, že nejsou v obou kruzích vyjímky. Docela dost divně a náročně se chová třeba foursquare a přitom by se dalo již očekávat, že se jedná o velice zdatné vývojáře, kteří memory a battery managementu dají mnoho času, opak je ale pravdou. Největším problémem 4SQ je komunikace se servery, která často vázne a je přehlcena. To jen jako ukázka toho, že i známé aplikace mají problémy což nic nemění na tom, že 4SQ je super služba.
Mějte se Jablíčkově!! :)
Informace jsme s laskavým svolením autora doplnili do článku ;-)
Omlouvám se všude byl mezi odstavci ENTER, mohli by s tím tady něco udělat aby komentáře měly alespoň trochu RICH TEXT FORMATING.
ArnieX: diky za komentar!!
To Faramir: ja len k tvojmu problému, neviem či to pomôže aj v tvojom prípade, no z vlastných skúseností viem že ak ukončíš aplikáciu (v multitaskingu) tak pár sekúnd trvá pokiaľ ju ukončí, takže ak ju vypneš odporúčam pár sekúnd počkať (ja pre istotu čakám cca 10s) kým je úrčite ukončená a až potom ju opätovne spúšťam.
Není zač ;) rád pomohu když mám možnost nějak přispět.
Jak je to treba s Meebem, kdyz se pres nej prihlasim na ICQ ci FB chat tak po 10 minutach se to automaticky odhlasi a ja prejdu do offline nebo to bezi furt? diky za objasneni :P
Po deseti minutách se pouze přeruší spojení aplikace s internetem. Na serveru Meeba však stále budete online a pokud vám někdo napíše, dojde vám push notifikace. Po znovuotevření aplikace během chvíle bude navázáno spojení a můžete vesele chatovat dál.
Tak pokud jsem vámi odkazovaný článek pochopil správně, tak statistika se týká pouze pádu aplikací při jejich startu, což je dost malé procento případů, kdy může k pádu dojít. Tedy usuzovat z tohoto „výzkumu“, že iOS je méně stabilní podle mě nelze. Dále se zapomněl překladatel článku převzatého z Forbesu zmínit, že společnost, která data o pádech aplikací poskytuje, je podporována mj. Googlem („Crittercism, which is backed by Google Ventures, …“).