Mayroon pa ring maraming mga tao na hindi alam kung paano gumagana ang multitasking sa iOS. Upang magsimula, gayunpaman, ito ay kinakailangan upang ituro na ito ay hindi tunay na multitasking, ngunit isang napaka-matalinong solusyon na hindi pasanin ang system o ang user.
Madalas marinig ng isang tao ang mga pamahiin na pinupuno ng mga app na tumatakbo sa background sa iOS ang operating memory, na humahantong sa paghina ng system at pagbaba ng buhay ng baterya, kaya dapat manu-manong i-off ng user ang mga ito. Ang multitasking bar ay hindi aktwal na naglalaman ng isang listahan ng lahat ng tumatakbong proseso sa background, ngunit ang pinakakamakailang inilunsad na mga application lamang. Kaya't ang user ay hindi kailangang mag-alala tungkol sa mga prosesong tumatakbo sa background maliban sa ilang mga kaso. Kapag pinindot mo ang pindutan ng Home, ang application ay kadalasang natutulog o nagsasara, upang hindi na nito mai-load ang processor o ang baterya at, kung kinakailangan, mapalaya ang kinakailangang memorya.
Kaya hindi ito ganap na multitasking kapag mayroon kang dose-dosenang mga prosesong tumatakbo. Isang application lang ang palaging tumatakbo sa foreground, na naka-pause o ganap na naka-off kung kinakailangan. Ilang pangalawang proseso lamang ang tumatakbo sa background. Iyon ang dahilan kung bakit bihira kang makatagpo ng pag-crash ng application sa iOS, halimbawa, ang Android ay nasobrahan sa pagpapatakbo ng mga application na kailangang asikasuhin ng user. Sa isang banda, ginagawa nitong hindi kasiya-siya ang pagtatrabaho sa device, at sa kabilang banda, nagiging sanhi ito, halimbawa, mabagal na pagsisimula at mga paglipat sa pagitan ng mga application.
Uri ng runtime ng application
Ang application sa iyong iOS device ay nasa isa sa 5 estadong ito:
- Tumatakbo: ang application ay nagsimula at tumatakbo sa foreground
- Background: ito ay tumatakbo pa rin ngunit tumatakbo sa background (maaari naming gamitin ang iba pang mga application)
- Nasuspinde: Gumagamit pa rin ng RAM ngunit hindi tumatakbo
- Hindi aktibo: tumatakbo ang application ngunit hindi direktang mga command (halimbawa, kapag ni-lock mo ang device gamit ang application na tumatakbo)
- Hindi tumatakbo: Ang aplikasyon ay tinapos o hindi pa nagsimula
Dumarating ang pagkalito kapag napunta ang app sa background upang hindi makaistorbo. Kapag pinindot mo ang button ng Home o ginamit ang galaw para isara ang application (iPad), mapupunta ang application sa background. Karamihan sa mga app ay nasuspinde sa loob ng ilang segundo (Ang mga ito ay naka-imbak sa iDevice ng RAM upang mabilis na mailunsad ang mga ito, hindi gaanong naglo-load ang mga ito sa processor at sa gayon ay nakakatipid sa buhay ng baterya) Maaari mong isipin na kung ang isang app ay patuloy na gumagamit ng memorya, mayroon kang upang manu-manong tanggalin ito upang malaya ito. Ngunit hindi mo kailangang gawin iyon, dahil gagawin ito ng iOS para sa iyo. Kung mayroon kang isang demanding na application na nasuspinde sa background, tulad ng isang laro na gumagamit ng malaking halaga ng RAM, awtomatikong aalisin ito ng iOS mula sa memorya kapag kinakailangan, at maaari mo itong i-restart sa pamamagitan ng pag-tap sa icon ng application.
Wala sa mga estadong ito ang makikita sa multitasking bar, ipinapakita lang ng panel ang isang listahan ng mga kamakailang inilunsad na app hindi alintana kung ang app ay itinigil, naka-pause, o tumatakbo sa background. Maaari mo ring mapansin na ang application na kasalukuyang tumatakbo ay hindi lumalabas sa Multitasking panel
Mga gawain sa background
Karaniwan, kapag pinindot mo ang pindutan ng Home, tatakbo ang application sa background, at kung hindi mo ito ginagamit, awtomatiko itong magpo-pause sa loob ng limang segundo. Kaya kung nagda-download ka ng podcast, halimbawa, sinusuri ito ng system bilang tumatakbong application at inaantala ang pagwawakas ng sampung minuto. Pagkatapos ng sampung minuto sa pinakahuli, ang proseso ay inilabas mula sa memorya. Sa madaling salita, hindi mo kailangang mag-alala tungkol sa pagkaantala sa iyong pag-download sa pamamagitan ng pagpindot sa Home Button, kung hindi ito aabutin ng higit sa 10 minuto upang makumpleto ito.
Walang tiyak na pagtakbo sa background
Sa kaso ng kawalan ng aktibidad, tinatapos ng system ang application sa loob ng limang segundo, at sa kaso ng mga pag-download, ang pagwawakas ay naantala ng sampung minuto. Gayunpaman, mayroong isang maliit na bilang ng mga application na nangangailangan ng pagtakbo sa background. Narito ang ilang halimbawa ng mga app na maaaring tumakbo sa background nang walang katapusan sa iOS 5:
- Mga application na nagpe-play ng tunog at dapat maantala ng ilang sandali (pag-pause ng musika habang may tawag sa telepono, atbp.),
- Mga application na sumusubaybay sa iyong lokasyon (navigation software),
- Ang mga application na tumatanggap ng mga tawag sa VoIP, halimbawa kung gumagamit ka ng Skype, maaari kang makatanggap ng isang tawag kahit na ang application ay nasa background,
- Mga awtomatikong pag-download (hal. Newsstand).
Dapat isara ang lahat ng application kung hindi na sila gumaganap ng isang gawain (tulad ng mga pag-download sa background). Gayunpaman, may mga pagbubukod na patuloy na tumatakbo sa background, gaya ng native na Mail app. Kung tumatakbo ang mga ito sa background, kumukuha sila ng memorya, paggamit ng CPU o binabawasan ang buhay ng baterya
Ang mga app na pinapayagang tumakbo sa background nang walang katapusan ay maaaring gawin ang anumang ginagawa nila habang tumatakbo ang mga ito, mula sa pag-play ng musika hanggang sa pag-download ng mga bagong episode ng Podcast.
Tulad ng nabanggit ko dati, hindi na kailangang isara ng user ang mga app na tumatakbo sa background. Ang tanging pagbubukod dito ay kapag ang isang app na tumatakbo sa background ay nag-crash o hindi nagising nang maayos mula sa pagtulog. Ang user ay maaaring manu-manong isara ang mga application sa multitasking bar, ngunit ito ay bihirang mangyari.
Kaya, sa pangkalahatan, hindi mo kailangang pamahalaan ang mga proseso sa background dahil ang system na ang mag-aalaga sa kanila mismo. Kaya naman ang iOS ay isang bago at mabilis na sistema.
Mula sa pananaw ng isang developer
Maaaring mag-react ang application na may kabuuang anim na magkakaibang estado bilang bahagi ng multitasking:
1. applicationWillResignActive
Sa pagsasalin, ang estadong ito ay nangangahulugan na ang aplikasyon ay magbibitiw bilang aktibong aplikasyon (iyon ay, ang aplikasyon sa foreground) sa hinaharap (isang bagay ng ilang millisecond). Nangyayari ito, halimbawa, kapag tumatanggap ng isang tawag habang ginagamit ang application, ngunit sa parehong oras, ang pamamaraang ito ay nagdudulot din ng ganitong estado bago mapunta ang application sa background, kaya kailangan mong isaalang-alang ang mga pagbabagong ito. Ang pamamaraang ito ay angkop din upang, halimbawa, sinuspinde nito ang lahat ng aktibidad na ginagawa nito kapag may papasok na tawag at maghintay hanggang matapos ang tawag.
2. applicationDidEnterBackground
Ang katayuan ay nagpapahiwatig na ang application ay napunta sa background. Dapat gamitin ng mga developer ang paraang ito upang suspindihin ang lahat ng proseso na hindi kinakailangang tumakbo sa background at i-clear ang memorya ng hindi nagamit na data at iba pang mga proseso, tulad ng mga nag-e-expire na timer, pag-clear ng mga na-load na larawan mula sa memorya na hindi naman kinakailangan, o pagsasara. mga koneksyon sa mga server, maliban kung ito ay kritikal para sa application na kumpletuhin ang mga koneksyon sa background. Kapag ginamit ang pamamaraan sa isang application, dapat itong gamitin upang ganap na masuspinde ang application kung ang ilang bahagi nito ay hindi kinakailangang tumakbo sa background.
3. applicationWillEnterForeground
Ang estado na ito ay ang kabaligtaran ng unang estado, kung saan ang aplikasyon ay magbibitiw sa aktibong estado. Nangangahulugan lamang ang estado na ang sleeping app ay magpapatuloy mula sa background at lalabas sa foreground sa loob ng susunod na ilang millisecond. dapat gamitin ng mga developer ang paraang ito upang ipagpatuloy ang anumang mga prosesong hindi aktibo habang nasa background ang application. Dapat na muling maitatag ang mga koneksyon sa mga server, i-reset ang mga timer, na-load ang mga larawan at data sa memorya, at maaaring ipagpatuloy ang iba pang mga kinakailangang proseso bago lang makita ng user ang na-load na application.
4. applicationDidBecomeActive
Ang estado ay nagpapahiwatig na ang application ay naging aktibo lamang pagkatapos na maibalik sa foreground. Ito ay isang paraan na maaaring magamit upang gumawa ng mga karagdagang pagsasaayos sa user interface o upang maibalik ang UI sa orihinal nitong estado, atbp. Ito ay aktwal na nangyayari sa sandaling nakikita na ng user ang application sa display, kaya kinakailangan na matukoy nang may pag-iingat kung ano ang mangyayari sa pamamaraan nito at sa nakaraang pamamaraan. Ang mga ito ay tinatawag na sunud-sunod na may pagkakaiba ng ilang millisecond.
5. applicationWillTerminate
Nangyayari ang estadong ito ng ilang millisecond bago lumabas ang application, iyon ay, bago aktwal na wakasan ang application. Alinman sa manu-manong mula sa multitasking o kapag ini-off ang device. Ang pamamaraan ay dapat gamitin upang i-save ang naprosesong data, upang tapusin ang lahat ng mga aktibidad at upang tanggalin ang data na hindi na kakailanganin.
6. applicationDidReceiveMemoryWarning
Ito ang huling estado na pinaka-pinag-uusapan. Responsibilidad nito, kung kinakailangan, na alisin ang application mula sa memorya ng iOS kung gumagamit ito ng mga mapagkukunan ng system nang hindi kinakailangan. Hindi ko alam kung ano ang ginagawa ng iOS sa mga background na app, ngunit kung kailangan nito ng isang app na maglabas ng mga mapagkukunan sa iba pang mga proseso, sinenyasan ito ng isang babala sa memorya upang ilabas ang anumang mga mapagkukunan na mayroon ito. Kaya ang pamamaraang ito ay tinatawag sa aplikasyon. Dapat itong ipatupad ng mga developer upang ibigay ng application ang memorya na inilaan nito, i-save ang lahat ng nangyayari, i-clear ang hindi kinakailangang data mula sa memorya, at kung hindi man ay sapat na mapalaya ang memorya. Totoo na maraming mga developer, kahit na mga baguhan, ay hindi nag-iisip o naiintindihan ang mga ganoong bagay, at pagkatapos ay maaaring mangyari na ang kanilang aplikasyon ay nagbabanta sa buhay ng baterya at/o hindi kinakailangang kumonsumo ng mga mapagkukunan ng system, kahit na sa background.
Hatol
Ang anim na estadong ito at ang kanilang mga nauugnay na pamamaraan ay ang background ng lahat ng "multitasking" sa iOS. ito ay isang mahusay na sistema, hangga't ang mga developer ay hindi balewalain ang katotohanan na mayroong pangangailangan na maging responsable tungkol sa kung ano ang ibinabato ng application sa mga device ng kanilang mga user, kung sila ay pinaliit o nakakakuha ng mga babala mula sa system at iba pa.
Pinagmulan: Macworld.com
Mga may-akda: Jakub Požárek, Martin Doubek (ArnieX)
May problema ka rin bang dapat lutasin? Kailangan mo ba ng payo o marahil ay makahanap ng tamang aplikasyon? Huwag mag-atubiling makipag-ugnayan sa amin sa pamamagitan ng form sa seksyon Pagpapayo, next time sasagutin namin ang tanong mo.
Kumusta, talagang cool na artikulo, ngunit iniisip ko kung mayroon kang anumang teknikal na suporta para dito. Dahil ilang beses ko nang na-solve ang battery sa gabi bago matulog at nagkataon na naka-off ang wifi at mobile data, mas tumagal kaysa sa ibang kaso naka-off ang wifi at 3G lang.
Sa kasamaang palad, ang karanasan ay na sa iOS, ang mga application ay kailangang i-off nang manu-mano, at ang system ay hindi na tumatakbo nang kasing ganda ng dati.
Pinalitan ko ang aking iPhone ng isang Windows Phone (Samsung Omnia W para sa 6200,-) at ang bilis ng system ay nasa ibang antas.
Natatakot ako na kapag lumabas ang Windows 8 Metro tablets, papalitan ko rin ang iPad...
@007 – oo, kung inihahambing mo ang mga lumang iPhone3G sa mga bagong WP, kung gayon oo (sino ang mag-aasahan na?) Ang WP ay medyo mas mabilis. Kung hindi, ang tsismis tungkol sa Karlulka ay hindi napupunta sa iyo at angkop na ihambing ang kasalukuyang HW. Bumili din ako ng WP7 at sa wakas ay napunta sa 4s, na kumakatawan sa isang ganap na naiibang antas ng kakayahang magamit kaysa sa WP7. Kaya pumasa nang kawili-wili at walang katapusang pag-scroll sa mga tile.
Sumasang-ayon ako kay Paja
Mag-aambag muli ako mula sa mga labi ng isa pang bariles - Samsung Galaxy S at iPhone 4 - sasabihin kong maihahambing sa mga tuntunin ng edad? Sa panahon ng iOS 4, at sa mga tuntunin ng kakayahang magamit at bilis sa isang lugar maliban sa Android, nalutas ng Apple ang konsepto ng pagtatrabaho sa mga application nang napakahusay, ngunit hindi na ito totoo sa Android. Sa huli, natapos ko pa rin ang 4S at wala akong mga reklamo, dahil "ito ay gumagana" .. at ito ay gumagana nang napakabilis!
Ang ganda ng theory... Pero in practice, isinasara ko pa rin ang application sa bar ;)
Salamat, napaka-kawili-wili, praktiko, kawili-wili, hindi ito kulang sa ugoy at lalim. Kapansin-pansing sinalungguhitan ang pagkahumaling ng mga kabataan ngayon sa ipinagbabawal na tatak na ito! Ngunit salamat sa kanya, pati na rin sa artikulong ito.
Ang artikulo ay ganap na mali.
Ang application ay hindi huminto kapag ang pindutan ng Home ay pinindot, tulad ng maling sinabi, ngunit naka-pause. I.e. tiyak na huwag tanggalin sa memorya at huwag huminto. I-pause lang ang pagtakbo, bibigyan ng iOS ang app na ito ng 0% CPU time. Tiyak na hindi ito "nagpapalit" saanman sa memorya ng iDevice, tulad ng nakasaad sa artikulo. Ito ay talagang salamat sa katotohanan na posible na gamitin ang paglipat ng app.
Ang application ay tinanggal mula sa memorya kapag ang telepono ay may maliit na memorya upang patakbuhin ang iba pang mga application na may mas mataas na priyoridad (karaniwang isa pang application ay tumatakbo sa foreground).
Sa unang kaso, tama ka, ito ay isang error sa pagsasalin. Tulad ng para sa pagpapalit, hindi namin pinag-uusapan iyon dito, pinag-uusapan natin ang tungkol sa operating memory, hindi ang espasyo sa imbakan sa iOS device.
ang imahe ng application ay naka-imbak sa memorya para sa isang limitadong oras hanggang sa ito ay ma-invoke muli ng isang command (tingnan ang 13,7 GB sa 16 GB: ang 2,3 GB ay nakalaan para sa system at nasuspinde na mga application)
Kaya, kinakailangan na makilala sa pagitan ng mga application tulad ng Navigation, Skype at iba pa, ang mga application na ito ay nananatiling aktibo kahit na sa background, o ang isang tiyak na function ay hindi nagtatapos at nagpapatuloy, halimbawa, upang magpadala ng data tungkol sa lokasyon nito o impormasyon sa lokasyon. O tulad ng Vokul sa pord mode na makinig at multitasking ay nakikinig pa rin sa background.
Ang mga application na ito ay nakakaubos ng baterya at ito ay kinakailangan upang isara ang mga ito nang manu-mano at hindi maghintay para sa iOS. sa iba ay hindi kinakailangan, doon lamang kung sakaling mag-crash ang application.
Hindi ako sumasang-ayon sa artikulo. Min. sa isang 1st generation iPad (iOS 5.0.1) malinaw na makita kung marami akong "bukas" na app sa multitasking bar o iilan lang. Sinusubukan ng iOS na linisin ang memorya, ngunit malinaw na hindi ito sapat - ang maliit na sukat ng RAM ay marahil ang pinakamalaking kahinaan nito.
kaya marami ang nakasalalay sa system at sa hardware na ginamit, medyo lohikal na magiging mas malala ito sa isang iPad 1 na may iOS 5.0.1 kaysa kung ito ay nasa isang 2nd generation iPad
Paumanhin, ito ay isang paglalarawan ng IDEAL na paraan na dapat itong gumana. Sa kasamaang palad, ang katotohanan ay ganap na naiiba at malalaman mo ito kung gumamit ka ng mga produkto ng Apple, kahit na kasing dami ko (ibig sabihin paminsan-minsan).
"Madalas mong marinig ang mga pamahiin na ang mga app na tumatakbo sa background sa iOS ay pumupuno sa operating memory,"
Ito ay hindi isang pamahiin, ito ay isang katotohanan lamang. Pagkatapos ng lahat, inaangkin mo ito sa iyong sarili sa artikulo.
"Tulad ng nabanggit ko kanina, hindi na kailangang isara ng user ang mga application na tumatakbo sa background."
KATANGAHAN. Kalokohan lang yan, apple propaganda, wag kang magalit sa akin.
“Ngunit hindi mo kailangang gawin iyon, dahil gagawin ito ng iOS para sa iyo. Kung mayroon kang isang demanding na application na nasuspinde sa background, tulad ng isang laro na gumagamit ng malaking halaga ng RAM, awtomatikong aalisin ito ng iOS mula sa memorya kapag kinakailangan, at maaari mo itong i-restart sa pamamagitan ng pag-tap sa icon ng application."
Hindi totoo. Medyo iba ang sitwasyon. Isang tipikal na halimbawa - Mayroon akong hinihingi na mga application na tumatakbo sa background, kailangan ko ng mga laro. Inilunsad ko ang browser, buksan ang isang pares ng mga tab -> kailangan ng higit pang memorya. Ano ang mangyayari? Patuloy akong humihingi ng mga application sa background, sa kabaligtaran, ANG BROWSER MISMO AY NAhuhulog. Kung isasara ko nang manu-mano ang mga hinihingi na application, gumagana ang browser nang mahabang panahon nang walang anumang problema.
Practice ito, hindi theory. At nagulat ako na, bilang isang pangmatagalang gumagamit ng isang produkto ng Apple, hindi mo pa rin alam ito.
Salamat, ito ay napakahusay na inilarawan at mahusay na ipinaliwanag. Medyo nakatulong ka sa akin ;-) ♥
Para lamang sa isang pagpapakilala, hindi ako para sa o laban sa iOS, tulad ng sa Android, ngunit mayroong ilang mga kakaibang bagay dito, kung tulad ng nakasulat dito: "bihira kang makatagpo ng pag-crash ng application sa iOS", pagkatapos ay sa Android, ang mga aplikasyon ay malamang na nag-crash isang beses sa isang taon: -P
http://dotekomanie.blog.mobilmania.cz/2012/02/stabilita-ios-vs-android/
Oo, ngunit ang mga kaso kapag kailangan mong isara ang application nang manu-mano ay talagang minimal, ginamit ko ito nang isang beses? ;-) at ang pagbibigay ng link sa comparative test mula sa Mobilemania ay medyo walang kabuluhan, kapag gusto kong basahin ang tungkol sa advertising na binayaran ng Google, titingnan ko doon ;-) lahat ay makakakuha ng anumang android phone sa kanilang mga kamay at ito ay hindi tatakbo nang malinis, iyon ay, maliban sa Galaxy Nexus, na kung saan ang sistema ay higit pa o mas pinasadya. Sa pangkalahatan, ang android ay isang kalamidad
@Mek – Ilang taon na akong gumagamit ng mga produkto ng Apple araw-araw at hindi pa ito nangyari sa akin, kaya kahit papaano ay hindi gumagana ang iyong teorya.
Q:
@redakce – Makikita mo na ang website ay patuloy na ginagawa o may nangyayari dito, ngunit pakiramdam ko ay hindi umabot ng isang linggo para gumana ang lahat ayon sa nararapat. At hindi na talaga ako pumupunta dito, dahil hindi bagay sa akin ang bagong hitsura. Hindi bababa sa ginamit ko ang mobile na bersyon sa iPhone, ngunit ngayon ay hindi ito gumana - paano? Kasalukuyan silang hindi tumutugon sa mga post sa mga komento.
@SteveJSF Sa kasamaang palad, ang mga bagay ay hindi palaging nangyayari sa paraang gusto natin. Tulad ng para sa mga sagot, sinira ng bagong SEO plugin ang mga ito, kasalukuyan itong niresolba.
Tinapos din ng WP-Touch ang aming serbisyo sa ilang kadahilanan, kaya nagpasya kaming magkaroon ng mas mahusay na solusyon kaysa sa plugin na ito. Kaya maaari mong abangan ang susunod na balita sa lalong madaling panahon :-)
Magandang artikulo. Kung tungkol sa pagsasanay, nais kong sabihin na sumasang-ayon ako sa ilang mga bagay at kadalasan ito ay gumagana tulad ng nakasaad, ngunit sa kasamaang-palad mayroon pa ring mga mahihirap na nakasulat na mga aplikasyon na hindi kumikilos nang tama, at pagkatapos ay may mga kaso tulad ng isa binanggit ng ilang mambabasa. Sa tingin ko ang Skype ay isang napakagandang halimbawa, alam ko mula sa pagsasanay na ito ay tumatakbo pa rin sa background (at iyon ay mabuti at kung paano ito dapat), ngunit ang problema ay ang application na ito ay nakakaubos ng baterya ng device at Hindi ko na makita ng maayos . Sa kabaligtaran, ang mga application tulad ng Facebook, Badoo, atbp. tumatakbo pa rin sila sa background, ngunit ang kanilang pagkonsumo ay halos hindi mahahalata (kahit hindi ko napapansin). Kaya sa palagay ko ang error ay nasa mga indibidwal na aplikasyon. Kung alam mo kung alin, sapat na upang i-off nang manu-mano lamang ang mga iyon!
Kaya ang pagsasanay ay ang Facebook ay tumatakbo kung kinakailangan at Skype lamang kapag kinakailangan.
Well, sa kabilang banda, kung kailangan kong magtipid ng baterya at alam kong kailangan kong panatilihing "buhay" ang iPhone hangga't maaari, pinapatay ko rin ang lahat ng hindi kailangan sa multitasking, ngunit karamihan ay wala itong malaking epekto, ngunit kung kinakailangan ay nililimitahan ko ang 3G, lahat ng mobile internet, WiFi, mga serbisyo sa lokasyon , airplane mode, lakas ng pag-iilaw, atbp. Bilang bahagi ng nakagawian, pinapatay ko rin ang mga nabanggit na application sa multitasking.
Kaya't personal na iniisip ko na ang artikulo ay totoo, sa kasamaang palad ang ilang mga programmer ay pinabulaanan ang mga bagay na ito sa kanilang mga aplikasyon, dahil ang kanilang mga aplikasyon ay hindi tama at sa aking palagay ay mayroon lamang dalawang solusyon para dito 1. Kung posible na huwag gamitin ang application at maghanap ng isang alternatibo kung maaari, o 2. Kung hindi posible, tingnan ang e.g. Skype, isulat ito sa ibinigay na programmer sa ulat at umaasa na may gagawin sila tungkol dito.
Maaaring walang kabuluhan ang manu-manong i-disable ang mga app, ngunit ginagawa ko pa rin ito. Sinubukan ko rin na huwag i-off ang application system, hayaan silang tumakbo (o iwanan silang tulog sa background) at ang buhay ng baterya ay mas mababa, kailangan ko ring i-restart ang iPad 2 pagkatapos ng mga tatlong linggo, ito ay tumugon nang mabagal. Kaya mano-mano kong pinapatay ang mga app, mas tumatagal ang baterya, kasalukuyan akong nag-restart noong nakaraang araw ng Pasko at ito ay tumatakbo nang maayos.
Sa pamamagitan ng paraan, ginagawa ko ang parehong bagay sa Mac OS X, isinara ko lang ang application na hindi ko kailangan (CMD+Q), ito ay mas mahusay kaysa sa pagtulog sa background at kumain ng RAM nang hindi kinakailangan (na OS X ay maaaring ' hindi gumagana nang mahusay). Mayroon akong maliit na RAM, 8 GB lamang, ngunit sa Windows 7 na may 8 GB, ang system ay hindi tumugon nang dahan-dahan o palitan, sa OS X ito ay isang medyo pangkaraniwang kababalaghan (hindi ko pinatay ang computer, ginagawa ko rin ito sa Mac, kaya ang isang buwan at mas maraming oras ay hindi isang pagbubukod, ang problema ay kung minsan kailangan kong i-restart ang Mac bilang isang pag-iingat upang palayain ang RAM at "pabilisin", hindi ito kailangan ng Windows 7).
Mas interesado ako sa kung paano aktwal na sabog ang application. Ang nangyari sa akin ay ang application (partikular sa Geocaching) ay napunta sa isang estado kung saan naglo-load ito ng isang bagay mula sa parent server at natigil sa estadong iyon. Ang pindutan ng home ay gumana, pagkatapos ng pag-reboot ay bumalik ito sa frozen na estado (kung saan ako tumigil). Manu-manong paglabas (sa multitasting menu, pindutin nang matagal ang icon at minus para isara) = nawala ang application, pagkatapos i-restart ay binuksan ito sa orihinal nitong estado kung saan ito nagyelo. Kaya't isinara ko ang lahat, pinatay ang telepono, binuksan ito, nag-double click sa HOME at narito - ang mga application ay nandoon na tulad ng dati bago sila isinara bago i-off. Hindi rin nakatulong ang pag-restart - hawakan sa bahay at itaas hanggang sa uminit. Ang tanging bagay na nakatulong ay ang pag-alis ng application mula sa telepono, pag-restart nito, at muling pag-install nito sa telepono. Kahit papaano hindi ko kinuha.
Gumagana ang Multitasking management na ito at nasa mga developer na makayanan ang mga sitwasyong ito. Para sa mga interesado sa isang mas detalyado at propesyonal na paglalarawan ng buong sitwasyon, isusulat ko dito kung paano ito.
Maaaring tumugon ang application sa kabuuang 6 na estado at ang mga estadong ito ay:
applicationWillResignActive
applicationDidEnterBackground
applicationWillEnterForeground
applicationDidBecomeActive
applicationWillTerminate
applicationDidReceiveMemoryWarning
Ngayon ay susubukan kong ilarawan ang mga estadong ito nang mas detalyado.
applicationWillResignActive – ang estado na ito ay nangangahulugan na sa hinaharap (ilang millisecond) ang application ay magre-resign bilang aktibong application (i.e. ang foreground application) ito ay nangyayari halimbawa kapag tumatanggap ng isang tawag habang ginagamit ang application, ngunit sa parehong oras na ito paraan kung kaya't ang estado na ito ay magti-trigger kahit na bago ang application ay mapunta sa background, kaya kailangan mong isaalang-alang ang mga pagbabagong ito. Ang pamamaraang ito ay angkop din upang, halimbawa, sinuspinde nito ang lahat ng aktibidad na ginagawa nito kapag may papasok na tawag at maghintay hanggang matapos ang tawag.
applicationDidEnterBackground - ang katayuang ito ay nagpapahiwatig na ang application ay pumasok sa background, dapat gamitin ng mga developer ang pamamaraang ito upang suspindihin ang lahat ng mga proseso na hindi kinakailangang tumakbo sa background at linisin ang memorya ng hindi nagamit na data at iba pang mga proseso, halimbawa, mga expire timer, i-clear mula sa memory load na mga imahe na hindi kinakailangang kailanganin o wakasan ang koneksyon sa mga server kung hindi kritikal para sa application na makumpleto ang koneksyon sa background. Karaniwan, ang pamamaraang ito kapag tinawag sa application ay dapat gamitin upang ganap na masuspinde ang application kung ang ilang bahagi nito ay hindi kinakailangang tumakbo sa background.
applicationWillEnterForeground – ang estadong ito ay kabaligtaran ng unang estado kapag ang aplikasyon ay magbibitiw sa aktibong estado. Ang estado ng application na ito ay nangangahulugan lamang na sa susunod na ilang millisecond ang natutulog na application ay magpapatuloy mula sa background at lilitaw sa foreground (papasok ang application sa foreground), ang paraang ito ay dapat gamitin ng mga developer upang ipagpatuloy ang anumang mga proseso na hindi aktibo habang ang application ay sa background , ang mga koneksyon sa mga server ay dapat na muling maitatag, ang mga timer ay i-reset, ang mga imahe at data na na-load sa memorya, at iba pang mga kinakailangang proseso ay maaaring ipagpatuloy bago lamang makita ng user ang na-load na application.
applicationDidBecomeActive – ang status na ito ay nagpapahiwatig na ang application ay naging aktibo lamang pagkatapos na maibalik sa foreground, ito ay isang paraan na maaaring magamit upang gumawa ng mga karagdagang pagsasaayos sa user interface o ibalik ang UI sa orihinal nitong estado, atbp. ang pamamaraang ito ay aktwal na nangyayari kapag nakikita na ng user sa display, kaya kinakailangan upang matukoy mula sa balanse kung ano ang nangyayari sa pamamaraang ito at sa nakaraang pamamaraan. Ang mga ito ay tinatawag na sunud-sunod na may pagkakaiba ng ilang millisecond.
applicationWillTerminate - nangyayari ang estadong ito ng ilang millisecond bago magwakas ang application, iyon ay, bago aktwal na magwakas ang application. Alinman sa manu-manong mula sa multitasking o kapag ini-off ang device. Ang pamamaraang ito ay dapat gamitin upang i-save ang naprosesong data at upang tapusin ang lahat ng mga aktibidad at tanggalin ang data na hindi na kakailanganin.
applicationDidReceiveMemoryWarning - at ito ay isang kondisyon na tinalakay ng marami dito, kung kinakailangan, tatanggalin ng iOS ang application mula sa memorya kung ito ay gumagamit ng mga mapagkukunan ng system nang hindi kinakailangan. Hindi ko alam kung ano mismo ang ginagawa ng iOS sa mga background na app, ngunit kung kailangan nito ng isang app na maglabas ng mga mapagkukunan sa iba pang mga proseso, sinenyasan ito ng isang babala sa memorya upang ilabas ang mga mapagkukunang hawak nito. Kaya ang pamamaraang ito ay tinatawag sa application, at dapat na ipatupad ito ng mga developer upang ibigay ng application ang memorya na mayroon ito, i-save ang naproseso at tanggalin ang hindi kinakailangang data mula sa memorya, at kung hindi man ay sapat na mapalaya ang memorya. Totoo na maraming mga developer, halimbawa mga nagsisimula, ay hindi nag-iisip tungkol sa mga bagay na iyon o hindi nauunawaan ang mga ito, at pagkatapos ay maaaring mangyari na ang kanilang aplikasyon ay nanganganib sa buhay ng baterya at/o hindi kinakailangang kumonsumo ng mga mapagkukunan ng system kahit na sa background. Hindi ko alam kung paano kikilos ang iOS kung walang gagawin ang application pagkatapos makatanggap ng memory warning at patuloy na kumonsumo ng mga mapagkukunan ng system tulad ng dati.
Ang ilang mga estado at nauugnay na pamamaraan ay nasa likod ng buong "multitasking" sa iOS... ito ay isang mahusay na sistema kung hindi balewalain ng mga developer ang pangangailangang maging responsable tungkol sa kung ano ang ilalabas ng mga app sa mga device ng kanilang mga user kung mababawasan ang mga ito o makakuha ng mga babala mula sa system at higit pa…
Umaasa ako na ang maikling paglalarawan na ito ay makakatulong sa iyo na maunawaan kung paano kasangkot ang application sa paggawa ng lahat ng bagay nang maayos. Kaya't halos posibleng sabihin na ito ay isang pagkakamali ng maling paggamit ng user, na mauunawaan bilang - kung gumagamit ka ng karamihan sa mga libreng application mula sa mga amateur na developer sa malaking bilang, ang iyong iOS device ay tatakbo nang mas malala kaysa sa kung gumamit ka ng malaking bilang ng libre at bayad na mga application mula sa karanasan o propesyonal na mga developer. Hindi ito nangangahulugan na walang mga pagbubukod sa parehong mga lupon. Ang Foursquare, halimbawa, ay kumikilos nang medyo kakaiba at hinihingi, at sa parehong oras ay inaasahan na nila na sila ay napakahusay na mga developer na nagbibigay ng maraming oras sa memorya at pamamahala ng baterya, ngunit ang kabaligtaran ay totoo. Ang pinakamalaking problema sa 4SQ ay ang pakikipag-ugnayan sa mga server, na kadalasang nag-hang at nalulula. Ito ay isang halimbawa lamang ng katotohanan na kahit na ang mga kilalang application ay may mga problema, na hindi nagbabago sa katotohanan na ang 4SQ ay isang mahusay na serbisyo.
Magsaya Apples!! :)
Idinagdag namin ang impormasyon sa artikulo nang may mabuting pahintulot ng may-akda ;-)
Ikinalulungkot ko, ang ENTER ay kahit saan sa pagitan ng mga talata, maaari silang gumawa ng isang bagay tungkol dito upang ang mga komento ay magkaroon ng kahit kaunting RICH TEXT FORMATING.
ArnieX: salamat sa comment!!
That Faramir: I just about your problem, I don't know if it will help in your case, but I know from my own experience na kung isasara mo ang application (sa multitasking) aabutin ng ilang segundo bago ito magsara, kaya kung patayin mo ito Inirerekumenda kong maghintay ng ilang segundo (naghihintay ako ng humigit-kumulang 10 segundo para makasigurado) hanggang sa tiyak na matapos ito at saka ko lang ito sisimulan muli.
You're welcome ;) Ikalulugod kong tumulong kung may pagkakataon akong mag-ambag.
Paano ito dapat kasama si Meeb, kapag nag-log in ako sa ICQ o FB chat sa pamamagitan nito, awtomatiko itong mag-log out pagkatapos ng 10 minuto at mag-offline ako o patuloy ba itong gumagana? salamat sa paglilinaw :P
Pagkatapos ng sampung minuto, ang koneksyon ng application sa Internet ay naaantala lamang. Gayunpaman, magiging online ka pa rin sa server ng Meeba at makakatanggap ka ng push notification kung may sumulat sa iyo. Pagkatapos muling buksan ang application, ang koneksyon ay maitatag sa ilang sandali at maaari kang magpatuloy sa pakikipag-chat nang masaya.
Kaya, kung naunawaan ko nang tama ang artikulong na-link mo, ang mga istatistika ay tumutukoy lamang sa mga pag-crash ng application kapag nagsimula ang mga ito, na isang medyo maliit na porsyento ng mga kaso kung saan maaaring mangyari ang mga pag-crash. Samakatuwid, imposibleng tapusin mula sa "pananaliksik" na ito na ang iOS ay hindi gaanong matatag sa aking opinyon. Higit pa rito, ang tagasalin ng artikulong kinuha mula sa Forbes ay nakalimutang banggitin na ang kumpanyang nagbibigay ng data sa mga pag-crash ng application ay sinusuportahan ng, bukod sa iba pa, ng Google ("Crittercism, na sinusuportahan ng Google Ventures,...").