Зачыніць аб'яву

Усе мы ведаем урок «шматзадачнасць = магчымасць выконваць некалькі працэсаў адначасова». Мы выкарыстоўваем яго ў нашых камп'ютарах, асабліва не ўсведамляючы яго прысутнасці. Пераключэнне паміж праграмамі або вокнамі адной праграмы адбываецца (для нас) у рэжыме рэальнага часу, і мы прымаем гэтую магчымасць аперацыйнай сістэмы як належнае.

Задача розная

Аперацыйная сістэма размяркоўвае працэсар для ўсіх прыкладанняў праз невялікія прамежкі часу. Гэтыя прамежкі часу настолькі малыя, што мы не можам іх заўважыць, таму здаецца, што ўсе праграмы выкарыстоўваюць працэсар адначасова. Мы можам так падумаць шматзадачнасць у iOS 4 працуе сапраўды гэтак жа. Гэта ня так. Асноўная прычына - гэта, вядома, ёмістасць батарэі. Калі б усе прыкладанні сапраўды заставаліся працаваць у фонавым рэжыме, нам, верагодна, прыйшлося б шукаць сокет праз некалькі гадзін.

Большасць праграм, сумяшчальных з iOS 4, пераводзяцца ў «прыпынены рэжым» або ў спячы рэжым пасля націску кнопкі «Дадому». Аналогіяй можа служыць закрыццё вечка ноўтбука, які адразу пераходзіць у спячы рэжым. Пасля адкрыцця вечка ноўтбук выходзіць з рэжыму сну, і ўсё знаходзіцца ў такім жа стане, як і да закрыцця вечка. Акрамя таго, ёсць прыкладанні, дзе націсканне кнопкі "Дадому" прыводзіць да іх завяршэння. І пад гэтым мы маем на ўвазе сапраўднае спыненне. У распрацоўшчыкаў ёсць выбар, які з гэтых метадаў выкарыстоўваць.

Але ёсць яшчэ адна катэгорыя прыкладанняў. Гэта праграмы, якія сапраўды працуюць у фонавым рэжыме, нават калі вы робіце нешта зусім іншае на вашым iDevice. Skype з'яўляецца добрым прыкладам, таму што яму неабходна пастаяннае падключэнне да Інтэрнэту. Іншымі прыкладамі могуць быць праграмы, якія прайграваюць фонавую музыку (Pandora), або праграмы, якія патрабуюць пастаяннага выкарыстання GPS. Так, гэтыя праграмы разраджаюць батарэю, нават калі працуюць у фонавым рэжыме.

Спаць ці збіць?

Пэўныя прыкладанні, сумяшчальныя з iOS 4, якія пасля націскання кнопкі «Дадому» павінны быць пераведзены ў спячы рэжым (пераведзены ў «прыпынены рэжым»), працягваюць працаваць у фонавым рэжыме. Apple дала распрацоўшчыкам роўна дзесяць хвілін, каб праграма выканала сваю задачу, якой бы яна ні была. Дапусцім, вы спампоўваеце файл у GoodReader. Раптам нехта хоча патэлефанаваць вам, і вы проста павінны прыняць гэты важны званок. Званок не доўжыўся больш за дзесяць хвілін, вы вернецеся ў дадатак GoodReader. Магчыма, файл ужо спампаваны або яшчэ спампоўваецца. Што рабіць, калі званок доўжыцца больш за дзесяць хвілін? Праграма, у нашым выпадку GoodReader, павінна спыніць сваю дзейнасць і паведаміць iOS, што яе можна перавесці ў рэжым сну. Калі яна гэтага не зробіць, яе бязлітасна ліквідуе сама iOS.

Цяпер вы ведаеце розніцу паміж "мабільнай" і "настольнай" шматзадачнасцю. У той час як плаўнасць і хуткасць пераключэння паміж праграмамі важныя для кампутара, тэрмін службы батарэі заўсёды з'яўляецца самым важным для мабільных прылад. Шматзадачнасць таксама трэба было адаптаваць да гэтага факту. Такім чынам, пасля прачытання гэтага артыкула, калі вы двойчы націснеце кнопку Home, вы больш не ўбачыце «панэль прыкладанняў, якія працуюць у фонавым рэжыме», а, па сутнасці, толькі «спіс нядаўна выкарыстаных праграм».

Аўтар: Даніэль Грушка
крыніца: onemoretap.com
.