Cau hysbyseb

Mae yna lawer o bobl o hyd nad ydyn nhw'n gwybod sut mae amldasgio yn gweithio yn iOS. I ddechrau, fodd bynnag, mae angen nodi nad amldasgio go iawn yw hwn, ond datrysiad smart iawn nad yw'n rhoi baich ar y system na'r defnyddiwr.

Yn aml, gellir clywed ofergoelion bod apps sy'n rhedeg yn y cefndir yn iOS yn llenwi'r cof gweithredu, sy'n arwain at arafu'r system a bywyd batri, felly dylai'r defnyddiwr eu diffodd â llaw. Nid yw'r bar amldasgio mewn gwirionedd yn cynnwys rhestr o'r holl brosesau cefndir sy'n rhedeg, ond dim ond y cymwysiadau a lansiwyd yn fwyaf diweddar. Felly nid oes rhaid i'r defnyddiwr boeni am brosesau sy'n rhedeg yn y cefndir ac eithrio mewn ychydig o achosion. Pan fyddwch chi'n pwyso'r botwm Cartref, mae'r cymhwysiad fel arfer yn mynd i gysgu neu'n cau, fel nad yw bellach yn llwytho'r prosesydd na'r batri ac yn rhyddhau'r cof angenrheidiol os oes angen.

Felly nid yw hwn yn amldasgio llawn pan fydd gennych ddwsinau o brosesau'n rhedeg. Dim ond ychydig o brosesau eilaidd sy'n rhedeg yn y cefndir. Dyna pam mai anaml y byddwch chi'n dod ar draws damwain cais ar iOS, er enghraifft mae Android wedi'i gorlethu â rhedeg cymwysiadau y mae'n rhaid i'r defnyddiwr ofalu amdanynt. Ar y naill law, mae hyn yn gwneud gweithio gyda'r ddyfais yn annymunol, ac ar y llaw arall, mae'n achosi, er enghraifft, cychwyn araf a thrawsnewidiadau rhwng cymwysiadau.

Math o amser rhedeg y rhaglen

Mae'r cais ar eich dyfais iOS yn un o'r 5 talaith hyn:

  • Yn rhedeg: mae'r cais wedi'i ddechrau ac yn rhedeg yn y blaendir
  • Cefndir: mae'n dal i redeg ond yn rhedeg yn y cefndir (gallwn ddefnyddio cymwysiadau eraill)
  • Wedi'i atal: Dal i ddefnyddio RAM ond ddim yn rhedeg
  • Anactif: mae'r rhaglen yn rhedeg ond gorchmynion anuniongyrchol (er enghraifft, pan fyddwch chi'n cloi'r ddyfais gyda'r rhaglen yn rhedeg)
  • Ddim yn rhedeg: Mae'r cais wedi dod i ben neu heb ddechrau

Daw'r dryswch pan aiff yr app i'r cefndir er mwyn peidio ag aflonyddu. Pan fyddwch chi'n pwyso'r botwm Cartref neu'n defnyddio'r ystum i gau'r rhaglen (iPad), mae'r cymhwysiad yn mynd i'r cefndir. Mae'r rhan fwyaf o apps yn cael eu hatal o fewn eiliadau (Maent yn cael eu storio yn RAM y iDevice fel y gellir eu lansio'n gyflym, nid ydynt yn llwytho'r prosesydd cymaint ac felly'n arbed bywyd batri) Efallai y byddwch chi'n meddwl, os yw app yn parhau i ddefnyddio cof, mae gennych chi i'w ddileu â llaw i'w ryddhau. Ond nid oes rhaid i chi wneud hynny, oherwydd bydd iOS yn ei wneud i chi. Os oes gennych raglen heriol wedi'i hatal yn y cefndir, fel gêm sy'n defnyddio llawer iawn o RAM, bydd iOS yn ei dynnu o'r cof yn awtomatig pan fo angen, a gallwch ei ailgychwyn trwy dapio eicon y cais.

Nid yw'r un o'r cyflyrau hyn yn cael eu hadlewyrchu yn y bar amldasgio, dim ond rhestr o apiau a lansiwyd yn ddiweddar y mae'r bar yn eu dangos, p'un a yw'r app yn cael ei stopio, ei seibio neu ei redeg yn y cefndir. Efallai y byddwch hefyd yn sylwi nad yw'r rhaglen sy'n rhedeg ar hyn o bryd yn ymddangos yn y panel Amldasgio

Tasgau cefndir

Fel arfer, pan fyddwch chi'n pwyso'r botwm Cartref, bydd y rhaglen yn rhedeg yn y cefndir, ac os nad ydych chi'n ei ddefnyddio, bydd yn oedi'n awtomatig o fewn pum eiliad. Felly os ydych chi'n lawrlwytho podlediad, er enghraifft, mae'r system yn ei werthuso fel cymhwysiad rhedeg ac yn gohirio'r terfyniad o ddeg munud. Ar ôl deng munud fan bellaf, mae'r broses yn cael ei rhyddhau o'r cof. Yn fyr, nid oes rhaid i chi boeni am dorri ar draws eich lawrlwythiad trwy wasgu'r Botwm Cartref, os nad yw'n cymryd mwy na 10 munud i'w gwblhau.

Rhedeg amhenodol yn y cefndir

Yn achos anweithgarwch, mae'r system yn terfynu'r cais o fewn pum eiliad, ac yn achos lawrlwythiadau, mae terfyniad yn cael ei ohirio am ddeg munud. Fodd bynnag, mae yna nifer fach o gymwysiadau y mae angen eu rhedeg yn y cefndir. Dyma rai enghreifftiau o apps a all redeg yn y cefndir am gyfnod amhenodol yn iOS 5:

  • Cymwysiadau sy'n chwarae sain ac y mae'n rhaid torri ar eu traws am ychydig (gan oedi cerddoriaeth yn ystod galwad ffôn, ac ati),
  • Cymwysiadau sy'n olrhain eich lleoliad (meddalwedd llywio),
  • Ceisiadau sy'n derbyn galwadau VoIP, er enghraifft os ydych chi'n defnyddio Skype, gallwch dderbyn galwad hyd yn oed pan fydd y cais yn y cefndir,
  • Lawrlwythiadau awtomatig (ee Newsstand).

Dylid cau pob cais os nad ydynt bellach yn cyflawni tasg (fel lawrlwythiadau cefndir). Fodd bynnag, mae yna eithriadau sy'n rhedeg yn y cefndir yn barhaus, fel yr app Mail brodorol. Os ydynt yn rhedeg yn y cefndir, maent yn cymryd cof, defnydd CPU neu leihau bywyd batri

Gall apiau y caniateir iddynt redeg yn y cefndir am gyfnod amhenodol wneud unrhyw beth a wnânt wrth redeg, o chwarae cerddoriaeth i lawrlwytho penodau Podlediad newydd.

Fel y soniais o'r blaen, nid oes angen i'r defnyddiwr byth gau'r apiau sy'n rhedeg yn y cefndir. Yr unig eithriad i hyn yw pan fydd ap sy'n rhedeg yn y cefndir yn damwain neu ddim yn deffro o gwsg yn iawn. Yna gall y defnyddiwr gau'r cymwysiadau â llaw yn y bar amldasgio, ond anaml y bydd hyn yn digwydd.

Felly, yn gyffredinol, nid oes angen i chi reoli prosesau cefndir oherwydd bydd y system yn gofalu amdanynt ei hun. Dyna pam mae iOS yn system mor ffres a chyflym.

O safbwynt datblygwr

Gall y cais ymateb gyda chyfanswm o chwe chyflwr gwahanol o fewn fframwaith amldasgio:

1. caisWillResignActive

Wrth gyfieithu, mae'r cyflwr hwn yn golygu y bydd y cais yn ymddiswyddo fel y cais gweithredol (hynny yw, y cais yn y blaendir) yn y dyfodol (mater o ychydig milieiliadau). Mae hyn yn digwydd, er enghraifft, wrth dderbyn galwad wrth ddefnyddio'r cais, ond ar yr un pryd, mae'r dull hwn hefyd yn achosi'r cyflwr hwn cyn i'r cais fynd i'r cefndir, felly mae angen i chi ystyried y newidiadau hyn. Mae'r dull hwn hefyd yn addas fel ei fod, er enghraifft, yn atal yr holl weithgareddau y mae'n eu perfformio pan fydd galwad yn dod i mewn ac yn aros tan ddiwedd yr alwad.

2. applicationDidEnterCefndir

Mae'r statws yn nodi bod y cais wedi mynd i'r cefndir. Dylai datblygwyr ddefnyddio'r dull hwn i atal pob proses nad oes angen iddynt redeg o reidrwydd yn y cefndir a chof clir o ddata nas defnyddiwyd a phrosesau eraill, megis amseryddion sy'n dod i ben, clirio delweddau wedi'u llwytho o'r cof na fydd eu hangen o reidrwydd, neu gau cysylltiadau â gweinyddwyr, oni bai ei bod yn hanfodol i'r rhaglen gwblhau cysylltiadau yn y cefndir. Pan elwir y dull yn y cais, yn y bôn dylid ei ddefnyddio i atal y cais yn gyfan gwbl os nad oes angen i ryw ran ohono redeg yn y cefndir.

3. caisWillEnterForeground

Mae'r cyflwr hwn i'r gwrthwyneb i'r wladwriaeth gyntaf, lle bydd y cais yn ymddiswyddo i'r cyflwr gweithredol. Mae'r cyflwr yn syml yn golygu y bydd yr app cysgu yn ailddechrau o'r cefndir ac yn ymddangos yn y blaendir o fewn yr ychydig milieiliadau nesaf. dylai datblygwyr ddefnyddio'r dull hwn i ailddechrau unrhyw brosesau a oedd yn anactif tra roedd y rhaglen yn y cefndir. Dylid ailsefydlu cysylltiadau â gweinyddwyr, ailosod amseryddion, llwytho delweddau a data i'r cof, a gall prosesau angenrheidiol eraill ailddechrau ychydig cyn i'r defnyddiwr weld y rhaglen wedi'i llwytho eto.

4. caisDidBecomeActive

Mae'r cyflwr yn nodi bod y cais newydd ddod yn weithredol ar ôl cael ei adfer i'r blaendir. Mae hwn yn ddull y gellir ei ddefnyddio i wneud addasiadau ychwanegol i'r rhyngwyneb defnyddiwr neu i adfer y UI i'w gyflwr gwreiddiol, ac ati Mae hyn mewn gwirionedd yn digwydd ar hyn o bryd pan fydd y defnyddiwr eisoes yn gweld y cais ar yr arddangosfa, felly mae angen i penderfynu yn ofalus beth sy'n digwydd yn y dull hwn ac yn y dull blaenorol. Fe'u gelwir y naill ar ôl y llall gyda gwahaniaeth o ychydig milieiliadau.

5. caisWillTerminate

Mae'r cyflwr hwn yn digwydd ychydig filieiliadau cyn i'r cais adael, hynny yw, cyn i'r cais ddod i ben mewn gwirionedd. Naill ai â llaw o amldasgio neu wrth ddiffodd y ddyfais. Dylid defnyddio'r dull i gadw data wedi'i brosesu, i ddod â phob gweithgaredd i ben ac i ddileu data na fydd eu hangen mwyach.

6. applicationDidReceiveMemoryWarning

Dyma'r cyflwr olaf sy'n cael ei drafod fwyaf. Mae'n gyfrifol, os oes angen, am dynnu'r cais o gof iOS os yw'n defnyddio adnoddau system yn ddiangen. Nid wyf yn gwybod yn benodol beth mae iOS yn ei wneud gydag apiau cefndir, ond os oes angen app arno i ryddhau adnoddau i brosesau eraill, mae'n ei annog gyda rhybudd cof i ryddhau pa bynnag adnoddau sydd ganddo. Felly gelwir y dull hwn yn y cais. Dylai datblygwyr ei weithredu fel bod y rhaglen yn rhoi'r gorau i'r cof y mae wedi'i ddyrannu, yn arbed popeth ar y gweill, yn clirio data diangen o'r cof, ac fel arall yn rhyddhau cof yn ddigonol. Mae'n wir nad yw llawer o ddatblygwyr, hyd yn oed dechreuwyr, yn meddwl am neu'n deall pethau o'r fath, ac yna gall ddigwydd bod eu cymhwysiad yn bygwth bywyd batri a / neu'n defnyddio adnoddau system yn ddiangen, hyd yn oed yn y cefndir.

Rheithfarn

Mae'r chwe gwladwriaeth hyn a'u dulliau cysylltiedig yn gefndir i'r holl "aml-dasgau" yn iOS. mae'n system wych, cyn belled nad yw datblygwyr yn anwybyddu'r ffaith bod angen bod yn gyfrifol am yr hyn y mae'r cais yn ei daflu i fyny ar ddyfeisiau eu defnyddwyr, os ydynt yn cael eu lleihau neu'n cael rhybuddion gan y system ac ati.

Ffynhonnell: Macworld.com

Awduron: Jakub Požárek, Martin Doubek (ArnieX)

 
A oes gennych chi broblem i'w datrys hefyd? Oes angen cyngor arnoch chi neu efallai ddod o hyd i'r cais cywir? Peidiwch ag oedi cyn cysylltu â ni drwy'r ffurflen yn yr adran Cwnsela, y tro nesaf byddwn yn ateb eich cwestiwn.

.