Komentáře: Jak skutečně funguje multitasking v iOS [Aktualizováno] https://jablickar.cz/jak-skutecne-funguje-multitasking-v-ios/ Jablickar.cz je vaším hlavním zdrojem pro novinky, recenze a tipy týkající se produktů Apple a technologií. Sledujte nejaktuálnější informace o iPhonech, iPadech, Macích a dalších Apple zařízeních. Objevte užitečné návody a tipy, které vám pomohou maximálně využít vaše produkty. Buďte informováni o trendech a novinkách v oblasti IT a technologií a připojte se k naší komunitě fanoušků Apple. Wed, 25 Jan 2023 11:08:57 +0000 hourly 1 https://wordpress.org/?v=6.9.4 Od: Petr https://jablickar.cz/jak-skutecne-funguje-multitasking-v-ios/#comment-110674 Wed, 29 Feb 2012 13:33:09 +0000 http://jablickar.cz/?p=35479#comment-110674 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, …“).

]]>
Od: Michal Žďánský https://jablickar.cz/jak-skutecne-funguje-multitasking-v-ios/#comment-110578 Mon, 27 Feb 2012 01:19:29 +0000 http://jablickar.cz/?p=35479#comment-110578 Odpověď na Diego.

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.

]]>
Od: Diego https://jablickar.cz/jak-skutecne-funguje-multitasking-v-ios/#comment-110577 Sun, 26 Feb 2012 23:26:59 +0000 http://jablickar.cz/?p=35479#comment-110577 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

]]>
Od: ArnieX https://jablickar.cz/jak-skutecne-funguje-multitasking-v-ios/#comment-110574 Sun, 26 Feb 2012 17:13:30 +0000 http://jablickar.cz/?p=35479#comment-110574 Není zač ;) rád pomohu když mám možnost nějak přispět.

]]>
Od: Michal Žďánský https://jablickar.cz/jak-skutecne-funguje-multitasking-v-ios/#comment-110572 Sun, 26 Feb 2012 16:17:37 +0000 http://jablickar.cz/?p=35479#comment-110572 Odpověď na ArnieX.

Informace jsme s laskavým svolením autora doplnili do článku ;-)

]]>
Od: Čabi https://jablickar.cz/jak-skutecne-funguje-multitasking-v-ios/#comment-110567 Sun, 26 Feb 2012 10:13:41 +0000 http://jablickar.cz/?p=35479#comment-110567 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.

]]>
Od: MasoX https://jablickar.cz/jak-skutecne-funguje-multitasking-v-ios/#comment-110565 Sun, 26 Feb 2012 08:41:22 +0000 http://jablickar.cz/?p=35479#comment-110565 ArnieX: diky za komentar!!

]]>
Od: ArnieX https://jablickar.cz/jak-skutecne-funguje-multitasking-v-ios/#comment-110558 Sat, 25 Feb 2012 17:27:54 +0000 http://jablickar.cz/?p=35479#comment-110558 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.

]]>
Od: ArnieX https://jablickar.cz/jak-skutecne-funguje-multitasking-v-ios/#comment-110557 Sat, 25 Feb 2012 17:26:27 +0000 http://jablickar.cz/?p=35479#comment-110557 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ě!! :)

]]>
Od: Vít Jurásek https://jablickar.cz/jak-skutecne-funguje-multitasking-v-ios/#comment-110555 Sat, 25 Feb 2012 14:34:21 +0000 http://jablickar.cz/?p=35479#comment-110555 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.

]]>