Instapaper Creator piedāvā elegantu risinājumu lietotņu fona atjaunināšanai

Apple ir paveicis veiklu darbu, lai mazinātu patiesās daudzuzdevumu trūkumus, izmantojot iOS 4, dodot izstrādātājiem piekļuvi dažām saprātīgi izvēlētām API (piemēram, fona audio) un universālu stāvokļa saglabāšanu.

Tas būs pietiekami labs lielākajai daļai cilvēku un lielākajai daļai lietotņu, neizraisot milzīgu akumulatora darbības laika vai apstrādes jaudas samazināšanos, bet diemžēl jaunās iOS 4 API nedariet neko, lai risinātu vienu no lielākajām daudzuzdevumu priekšrocībām: fona lietojumprogrammas, kas var atjaunināt vai sinhronizēt informāciju, ja tās nav koncentrēties. Citiem vārdiem sakot, kad parādās operētājsistēma iOS 4, tādas lietotnes kā plūsmas lasītāji, Twitter klienti un tērzēšanas programmas joprojām būs jāatver visu laiku, lai iesūktu jaunu informāciju no interneta.

Savā personīgajā emuārā Marco Arment - App Store iecienītākā Instapaper izstrādātājs - ir ievietojis lielisks ieteikums Apple par to, kā ļaut lietotnēm efektīvi atjaunināt sevi fonā: dodiet iOS iespēju noteikt prioritāti periodiskiem trešo pušu lietotņu tīkla pieprasījumiem.

Vēl viena daudzuzdevumu pakalpojuma pievienošana atrisinātu šo problēmu daudziem lietojumprogrammu veidiem: periodisks tīkla pieprasījums. Lūk, kā es to darītu:

• Lietojumprogramma piešķir sistēmai NSURLRequest un ideālu atsvaidzināšanas intervālu, piemēram, ik pēc 30 minūtēm, ik pēc dažām stundām vai katru dienu.

• iOS izpilda šo pieprasījumu ikreiz, kad uzskata to par vajadzīgu, un saglabā atbildi uz vietējo failu.

• Nākamreiz, kad lietojumprogramma tiks palaista, iOS nodos tai jaunākās atbildes NSData.

Ir svarīgi izpildīt pieprasījumu “ikreiz, kad uzskata, ka tam vajadzētu būt”. iOS var izlemt, piemēram:

• Neatjaunināt, ja akumulatora uzlādes līmenis ir zems, savienojums ir slikts, citi pieprasījumi darbojas, ir maz brīvas atmiņas, procesora lietojums ir liels vai tiek prognozēts, ka lietotājs pārsniegs ikmēneša datu limitu.

• Neatjaunināt tik bieži, cik pieprasa lietotne, vai palielināt intervālu laika gaitā, vai dinamiski pielāgot intervālu, pamatojoties uz to, cik bieži tā saņem 304 (nav modificēts) atbildi.

• Neatjaunināt vispār, ja lietotne, kas pieprasa, nav palaista ilgu laiku.

Tas ļautu Instapaper lejupielādēt atjauninājumus fonā, kā arī sniegtu lielu labumu RSS lasītājiem, Twitter klientiem, tērzēšanai programmas, laika ziņas un ziņu logrīki un milzīgs skaits citu lietojumprogrammu, kuras pašlaik nevar gūt lielu labumu no iOS ” daudzuzdevumu veikšana.

Es noteikti neesmu sistēmas arhitekts, bet man tas izklausās kā efektīvs risinājums. Faktiski tas ir tik saprotams un acīmredzams risinājums, ka doma gaidīt līdz iOS 5 atjauninājumam Šāda funkcionalitāte sniedz man nelielu satricinājumu gadījumu... lai gan tas varētu būt pagājušās nakts Talisker runājot.

Jaunākais emuāra ziņojums

Swizzle iesūtnes organizators pārvērš jūsu e -pastu labākā iepirkšanās ceļojumā [ikdienas bezmaksas piedāvājums]
September 10, 2021

Swizzle iesūtnes organizators pārvērš jūsu e -pastu labākā iepirkšanās ceļojumā [ikdienas bezmaksas piedāvājums]Vai domājat, ka jūsu iesūtne ir rei...

| Mac kults
September 10, 2021

Skatiet, ko tieši jūsu draugi ir ieplānojuši, izmantojot brīnišķīgi sociālo lietotni Kalendārs līdz [ikdienas bezmaksas dāvanas]UpTo varētu būt lab...

AppSeed uzreiz pārvērš jūsu salvetes logotipus lietotnes saskarnē [ikdienas bezmaksas piedāvājums]
September 10, 2021

AppSeed uzreiz pārvērš jūsu salvešu logotipus lietotnes saskarnē [ikdienas bezmaksas piedāvājums]Tāpat kā viegli lietojamas radošās lietotnes, piem...