Aizvērt sludinājumu

Joprojām ir daudz cilvēku, kas nezina, kā daudzuzdevumu veikšana darbojas operētājsistēmā iOS. Tomēr iesākumā jānorāda, ka šī nav īsta multitasking, bet gan ļoti gudrs risinājums, kas neapgrūtina sistēmu vai lietotāju.

Bieži var dzirdēt māņticību, ka lietotnes, kas darbojas iOS fonā, aizpilda darbības atmiņu, kas noved pie sistēmas palēnināšanas un akumulatora darbības laika, tāpēc lietotājam tās jāizslēdz manuāli. Daudzuzdevumu joslā faktiski nav visu darbojošos fona procesu saraksta, bet tikai pēdējās palaistās lietojumprogrammas. Tāpēc lietotājam nav jāuztraucas par procesiem, kas darbojas fonā, izņemot dažus gadījumus. Nospiežot pogu Home, aplikācija parasti pāriet miega režīmā vai aizveras, lai tā vairs neuzlādē ne procesoru, ne akumulatoru un nepieciešamības gadījumā atbrīvo nepieciešamo atmiņu.

Tātad šī nav pilnvērtīga vairākuzdevumu veikšana, kad darbojas vairāki desmiti procesu. Priekšplānā vienmēr darbojas tikai viena lietojumprogramma, kas vajadzības gadījumā tiek apturēta vai pilnībā izslēgta. Fonā darbojas tikai daži sekundārie procesi. Tāpēc iOS operētājsistēmā reti nāksies saskarties ar lietojumprogrammu avāriju, piemēram, Android ir pārslogots ar palaistām programmām, par kurām lietotājam ir jārūpējas. No vienas puses, tas padara darbu ar ierīci nepatīkamu, no otras puses, tas izraisa, piemēram, lēnu startēšanu un pārejas starp lietojumprogrammām.

Lietojumprogrammas izpildlaika veids

Lietojumprogrammai jūsu iOS ierīcē ir kāds no šiem 5 stāvokļiem:

  • Skriešana: lietojumprogramma tiek startēta un darbojas priekšplānā
  • Fons: tas joprojām darbojas, bet darbojas fonā (mēs varam izmantot citas lietojumprogrammas)
  • Apturēts: Joprojām izmanto RAM, bet nedarbojas
  • Neaktīvs: lietojumprogramma darbojas, bet netiešas komandas (piemēram, kad bloķējat ierīci, kad programma darbojas)
  • Nedarbojas: Pieteikšanās ir beigusies vai nav sākusies

Apjukums rodas, kad lietotne pāriet fonā, lai netraucētu. Nospiežot sākuma pogu vai izmantojot žestu, lai aizvērtu lietojumprogrammu (iPad), lietojumprogramma pāriet fonā. Lielākā daļa lietotņu tiek apturētas dažu sekunžu laikā (tās tiek saglabātas iDevice operatīvajā atmiņā, lai tās varētu ātri palaist, tās tik ļoti nenoslogo procesoru un tādējādi ietaupa akumulatora darbības laiku) Varētu domāt, ka, ja lietotne turpina izmantot atmiņu, , lai to manuāli izdzēstu, lai to atbrīvotu. Bet jums tas nav jādara, jo iOS to darīs jūsu vietā. Ja fonā ir apturēta prasīga lietojumprogramma, piemēram, spēle, kas izmanto lielu RAM daudzumu, iOS nepieciešamības gadījumā to automātiski izņems no atmiņas, un jūs varat to restartēt, pieskaroties lietojumprogrammas ikonai.

Neviens no šiem stāvokļiem netiek atspoguļots vairākuzdevumu joslā, panelī tiek rādīts tikai nesen palaistu programmu saraksts neatkarīgi no tā, vai lietotne ir apturēta, apturēta vai darbojas fonā. Varat arī pamanīt, ka lietojumprogramma, kas pašlaik darbojas, neparādās vairākuzdevumu panelī

Fona uzdevumi

Parasti, nospiežot pogu Sākums, lietojumprogramma darbosies fonā, un, ja jūs to neizmantojat, tā automātiski apstāsies piecu sekunžu laikā. Tātad, ja, piemēram, lejupielādējat aplādes apraidi, sistēma to novērtē kā darbojošu lietojumprogrammu un aizkavē pārtraukšanu par desmit minūtēm. Vēlākais pēc desmit minūtēm process tiek atbrīvots no atmiņas. Īsāk sakot, jums nav jāuztraucas par lejupielādes pārtraukšanu, nospiežot sākuma pogu, ja lejupielādes pabeigšana neaizņem vairāk par 10 minūtēm.

Nenoteikta darbība fonā

Neaktivitātes gadījumā sistēma pārtrauc lietotnes darbību piecu sekunžu laikā, bet lejupielāžu gadījumā pārtraukšana tiek aizkavēta par desmit minūtēm. Tomēr ir neliels skaits lietojumprogrammu, kurām ir jādarbojas fonā. Šeit ir daži lietotņu piemēri, kas operētājsistēmā iOS 5 var darboties fonā neierobežotu laiku.

  • Lietojumprogrammas, kas atskaņo skaņu un ir kādu laiku jāpārtrauc (mūzikas pauze tālruņa zvana laikā utt.),
  • Lietojumprogrammas, kas izseko jūsu atrašanās vietu (navigācijas programmatūra),
  • Lietojumprogrammas, kas saņem VoIP zvanus, piemēram, ja izmantojat Skype, varat saņemt zvanu pat tad, ja programma darbojas fonā,
  • Automātiskās lejupielādes (piem., Kiosks).

Visas lietojumprogrammas ir jāaizver, ja tās vairs neveic kādu uzdevumu (piemēram, fona lejupielādes). Tomēr ir izņēmumi, kas nepārtraukti darbojas fonā, piemēram, vietējā lietotne Mail. Ja tie darbojas fonā, tie aizņem atmiņu, CPU vai samazina akumulatora darbības laiku

Lietojumprogrammas, kurām ir atļauts darboties fonā neierobežotu laiku, var darīt visu, ko tās dara, kamēr tās darbojas, sākot no mūzikas atskaņošanas līdz jaunu Podcast epizožu lejupielādei.

Kā jau minēju iepriekš, lietotājam nekad nav jāaizver fonā strādājošās lietotnes. Vienīgais izņēmums ir gadījumi, kad lietotne, kas darbojas fonā, avarē vai nepamostas no miega režīma. Pēc tam lietotājs var manuāli aizvērt lietojumprogrammas vairākuzdevumu joslā, taču tas notiek reti.

Tātad kopumā jums nav jāpārvalda fona procesi, jo sistēma pati par tiem parūpēsies. Tāpēc iOS ir tik jauna un ātra sistēma.

No izstrādātāja viedokļa

Lietojumprogramma var reaģēt ar sešiem dažādiem stāvokļiem kā daļu no vairākuzdevumu veikšanas:

1. pieteikumsWillResignActive

Tulkojumā šis stāvoklis nozīmē, ka lietojumprogramma turpmāk (dažu milisekundu laikā) atteiksies kā aktīvā lietojumprogramma (tas ir, lietojumprogramma priekšplānā). Tas notiek, piemēram, saņemot zvanu lietojumprogrammas lietošanas laikā, bet tajā pašā laikā šī metode arī izraisa šo stāvokli, pirms programma pāriet fonā, tāpēc jums ir jāņem vērā šīs izmaiņas. Šī metode ir piemērota arī, piemēram, lai apturētu visas darbības, ko tā veic, kad ir ienākošs zvans, un gaidītu līdz zvana beigām.

2. applicationDidEnterBackground

Statuss norāda, ka lietojumprogramma ir pārgājusi fonā. Izstrādātājiem ir jāizmanto šī metode, lai apturētu visus procesus, kuriem nav obligāti jādarbojas fonā, un notīrītu neizmantoto datu atmiņu un citus procesus, piemēram, taimerus, kuru derīguma termiņš beidzas, ielādētu attēlu notīrīšanu no atmiņas, kas nav obligāti nepieciešami, vai aizvēršanu. savienojumus ar serveriem, ja vien lietojumprogrammai nav svarīgi fonā pabeigt savienojumus. Kad metode tiek izsaukta lietojumprogrammā, tā pamatā ir jāizmanto, lai pilnībā apturētu lietojumprogrammu, ja kādai tās daļai nav jādarbojas fonā.

3. applicationWillEnterForeground

Šis stāvoklis ir pretējs pirmajam stāvoklim, kurā lietojumprogramma pāries uz aktīvo stāvokli. Stāvoklis vienkārši nozīmē, ka miega lietotne atsāksies no fona un parādīsies priekšplānā dažu nākamo milisekunžu laikā. izstrādātājiem vajadzētu izmantot šo metodi, lai atsāktu visus procesus, kas bija neaktīvi, kamēr lietojumprogramma darbojās fonā. Savienojumi ar serveriem ir jāatjauno, taimeri ir jāatiestata, attēli un dati jāielādē atmiņā, un citi nepieciešamie procesi var atsākties tieši pirms lietotājs atkal redz ielādēto lietojumprogrammu.

4. ApplicationDidBecomeActive

Stāvoklis norāda, ka lietojumprogramma ir tikko kļuvusi aktīva pēc atjaunošanas priekšplānā. Šī ir metode, ko var izmantot, lai veiktu papildu pielāgojumus lietotāja interfeisā vai atjaunotu lietotāja saskarni sākotnējā stāvoklī utt. Tas faktiski notiek brīdī, kad lietotājs jau redz lietojumprogrammu displejā, tāpēc ir nepieciešams piesardzīgi nosakiet, kas notiek šīs un iepriekšējās metodes metodē. Tos sauc vienu pēc otra ar dažu milisekundu atšķirību.

5. pieteikumsWillTerminate

Šis stāvoklis notiek dažas milisekundes pirms lietojumprogrammas iziešanas, tas ir, pirms lietojumprogramma faktiski tiek pārtraukta. Vai nu manuāli no vairākuzdevumu veikšanas, vai arī izslēdzot ierīci. Metode jāizmanto, lai saglabātu apstrādātos datus, izbeigtu visas darbības un dzēstu datus, kas vairs nebūs vajadzīgi.

6. ApplicationDidReceiveMemoryWarning

Tas ir pēdējais stāvoklis, par kuru tiek runāts visvairāk. Tas ir atbildīgs par lietojumprogrammas izņemšanu no iOS atmiņas, ja tas lieki izmanto sistēmas resursus. Es nezinu, ko iOS dara ar fona lietotnēm, taču, ja tai ir nepieciešama lietotne, lai atbrīvotu resursus citiem procesiem, tas liek tai brīdināt par atmiņu, lai atbrīvotu visus tai pieejamos resursus. Tātad šī metode tiek izsaukta lietojumprogrammā. Izstrādātājiem tas jāīsteno tā, lai lietojumprogramma atteiktos no piešķirtās atmiņas, saglabātu visu notiekošo, iztīrītu no atmiņas nevajadzīgos datus un citādi adekvāti atbrīvotu atmiņu. Tiesa, daudzi izstrādātāji, pat iesācēji, par tādām lietām nedomā un nesaprot, un tad var gadīties, ka viņu aplikācija apdraud akumulatora darbības laiku un/vai lieki patērē sistēmas resursus pat fonā.

Spriedums

Šie seši stāvokļi un ar tiem saistītās metodes ir visas iOS “daudzuzdevumu veikšanas” fons. tā ir lieliska sistēma, ja vien izstrādātāji neņem vērā faktu, ka ir jābūt atbildīgiem par to, ko lietojumprogramma izmet viņu lietotāju ierīcēs, ja tās tiek samazinātas līdz minimumam vai saņem brīdinājumus no sistēmas utt.

Avots: Macworld.com

Autori: Jakubs Požāreks, Martins Dubeks (ArnieX)

 
Vai arī jums ir kāda problēma, kas jāatrisina? Vai jums ir nepieciešams padoms vai, iespējams, atrodat pareizo pielietojumu? Nevilcinieties sazināties ar mums, izmantojot sadaļā esošo veidlapu Konsultācijas, nākamreiz mēs atbildēsim uz jūsu jautājumu.

.