Всички знаем урока „мултитаскинг = способността да изпълняваш няколко процеса едновременно“. Ние го използваме в нашите компютри, без да сме особено наясно с неговото присъствие. Превключването между приложения или прозорци на едно приложение става (за нас) в реално време и ние приемаме тази възможност на операционната система за даденост.
Задача различна
Операционната система разпределя процесора за всички приложения на малки интервали от време. Тези периоди от време са толкова малки, че не можем да ги забележим, така че изглежда, че всички приложения използват процесора едновременно. Може да мислим така многозадачност в iOS 4 работи точно по същия начин. Това не е така. Основната причина разбира се е капацитетът на батерията. Ако всички приложения наистина бяха оставени да работят във фонов режим, вероятно ще трябва да търсим сокет след няколко часа.
Повечето приложения, съвместими с iOS 4, се поставят в „спрян режим“ или заспиват след натискане на бутона Начало. Аналогия може да бъде затварянето на капака на лаптоп, който веднага преминава в режим на заспиване. След отваряне на капака, лаптопът се събужда и всичко е в абсолютно същото състояние, както преди затварянето на капака. Освен това има приложения, при които натискането на бутона Начало ги затваря. И с това имаме предвид истинско прекратяване. Разработчиците имат избор кой от тези методи да използват.
Но има и друга категория приложения. Това са приложенията, които наистина работят във фонов режим, въпреки че правите нещо съвсем различно на вашето iDevice. Skype е добър пример, защото се нуждае от постоянна интернет връзка. Други примери могат да бъдат приложения, възпроизвеждащи фонова музика (Pandora) или приложения, изискващи постоянно използване на GPS. Да, тези приложения изтощават батерията ви дори когато работят във фонов режим.
Заспиване или сваляне?
Определени приложения, съвместими с iOS 4, които трябва да бъдат поставени в режим на заспиване (поставени в „спрян режим“) след натискане на бутона Начало, продължават да работят във фонов режим. Apple даде на разработчиците точно десет минути, за да може приложението да изпълни задачата си, каквато и да е тя. Да приемем, че изтегляте файл в GoodReader. Изведнъж някой иска да ви се обади и вие просто трябва да приемете това важно обаждане. Обаждането не продължи повече от десет минути, ще се върнете към приложението GoodReader. Файлът може вече да е изтеглен или все още се изтегля. Ами ако обаждането отнеме повече от десет минути? Приложението, в нашия случай GoodReader, ще трябва да спре дейността си и да каже на iOS, че може да заспи. Ако не го направи, тя ще бъде безмилостно прекратена от самия iOS.
Вече знаете разликата между „мобилен“ и „десктоп“ мултитаскинг. Докато плавността и скоростта на превключване между приложенията са важни за компютъра, животът на батерията винаги е най-важното нещо за мобилните устройства. Многозадачността също трябваше да бъде адаптирана към този факт. Ето защо, след като прочетете тази статия, ако натиснете два пъти бутона Home, вече няма да виждате „лентата с приложения, работещи във фонов режим“, а по същество само „списъка с наскоро използвани приложения“.
Автор: Даниел ХрушкаИзточник: onemoretap.com
хм, интересно :) Винаги съм мислил, че винаги е подобно на това как може да се направи в Unix. Че на приложението е разпределено нула процесорно време и процесът просто седи в паметта, всички ресурси са разпределени. така че трябваше да натисна home два пъти и веднага да спра приложението, за да го изтрия. Значи ли това, че дори ако има икона на приложение в долния скрит лист, приложението все още е затворено преди много време (след 10 минути)?
В долния списък има просто най-скоро отворените приложения, като някои от тях все още могат да работят, други са спрени, а някои са напълно прекратени. Ръчното премахване на приложението от списъка има "страничния ефект", че ако се случи да работи (или е спряно), то ще бъде прекратено.
Приложението трябва да каже само за тези 10 допълнителни минути и не е гарантирано, че ще ги получи.
Е, това не ме отърва от манията ми да затварям приложението от списъка (ами ако случайно изяде ресурси, нали? :-D)
Разбирам, че 10-те минути са за приложения, които трябва да работят във фонов режим и не попадат в категорията „skype, GPS и възпроизвеждане на музика“. Други приложения преминават към спрян режим и остават в паметта, докато паметта не е необходима за други неща.
Прекъснатият режим има предимството, че ако трябва да затворите приложението, няма да загубите данните му, всичко ще бъде запазено в момента на превключване към спрян.
или, в случай например на възпроизвеждане, еквивалентът на командата bg / fg
А какво ще кажете за плейъра или други приложения, работещи във фонов режим за произволен период от време? Искам да кажа, мога ли да "избера" като разработчик или това трябва да бъде одобрено от Apple по някакъв начин?
За да може приложението наистина да работи във фонов режим за неограничено време, то трябва да извърши (регистрира) едно от следните действия:
– Използвайте услуги за местоположение (GPS)
– Възпроизвеждане на музика във фонов режим
– Използвайте VOIP (глас през IP)
Според заглавието (поглед под капака) очаквах статията да съдържа малко по-разширено обяснение с технически подробности. Това изглежда по-скоро като perex към статията. Ако е perex кога е продължението? Можете ли да получите възстановяване? :-)
и какво бихте искали да знаете по-подробно?
От статия с „под капака“ в заглавието бих очаквал подробно техническо описание (авторът може да анализира, например, режийните разходи при превключване на приложения или как се обработва едновременният достъп до системни ресурси), сравнение с други модели (например с джейлбрейкнат iPhone). Идеално е да го подкрепите с някои измервания. Просто очаквах много повече от статия, която има "под капака" в заглавието си, отколкото това много повърхностно описание.
Има ли някакъв icq клиент, който работи непрекъснато във фонов режим като скайп и не прекъсва връзката?
приложението има 10 секунди, за да премине в режим на спиране, а не 10 минути... и по време на този процес някои части може или не могат да "висят" на бекенд услугите, някои от които вече са изброени по-горе - това е, което Apple нарича "интелигентно "многозадачност.... тогава системата я свали
Приложението може да изисква допълнително време, ако нещо се изтегля, качва или обработва. Няма нищо общо с GPS, VoIP или възпроизвеждане на музика, които работят в минималистичен режим за неограничено време.