Isara ang ad

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.

.