Hələ də iOS-da multitaskingin necə işlədiyini bilməyən bir çox insan var. Bununla belə, başlamaq üçün qeyd etmək lazımdır ki, bu, real multitasking deyil, sistemə və ya istifadəçiyə yük olmayan çox ağıllı bir həlldir.
Tez-tez iOS-da arxa planda işləyən proqramların əməliyyat yaddaşını doldurduğuna dair mövhumatlar eşidilir ki, bu da sistemin yavaşlamasına və batareyanın ömrünə səbəb olur, ona görə də istifadəçi onları əl ilə söndürməlidir. Çox vəzifəli panel əslində bütün işləyən fon proseslərinin siyahısını deyil, yalnız ən son işə salınmış proqramları ehtiva edir. Beləliklə, istifadəçi bir neçə hal istisna olmaqla, fonda işləyən proseslərdən narahat olmayacaq. Əsas düyməni basdığınız zaman proqram adətən yuxu rejiminə keçir və ya bağlanır ki, o, artıq prosessoru və ya batareyanı yükləməsin və lazım gələrsə, lazımi yaddaşı boşaltsın.
Onlarla işlədiyiniz zaman bu, tam hüquqlu multitasking deyil. Yalnız bir neçə ikinci dərəcəli proses arxa planda işləyir. Buna görə iOS-da nadir hallarda tətbiq qəzası ilə qarşılaşacaqsınız, məsələn, Android istifadəçinin qayğısına qalmalı olduğu işləyən proqramlarla doludur. Bir tərəfdən, bu, cihazla işləməyi xoşagəlməz edir, digər tərəfdən, məsələn, yavaş başlanğıc və tətbiqlər arasında keçidlərə səbəb olur.
Tətbiqin icra müddəti növü
iOS cihazınızda tətbiq bu 5 vəziyyətdən birindədir:
- Qaçış: proqram işə salınır və ön planda işləyir
- Fon: hələ də işləyir, lakin fonda işləyir (digər proqramlardan istifadə edə bilərik)
- Dayandırılıb: Hələ də RAM istifadə edir, lakin işləmir
- Qeyri-aktiv: proqram işləyir, lakin dolayı əmrlər (məsələn, proqram işlək vəziyyətdə cihazı kilidlədiyiniz zaman)
- Çalışmır: Tətbiq dayandırıldı və ya başlamadı
Narahat olmamaq üçün proqram arxa plana keçəndə qarışıqlıq yaranır. Tətbiqi (iPad) bağlamaq üçün Home düyməsini basdığınız zaman və ya jestdən istifadə etdikdə proqram arxa plana keçir. Əksər proqramlar saniyələr ərzində dayandırılır (Onlar iDevice-in operativ yaddaşında saxlanılır ki, onlar tez işə salınsınlar, prosessoru o qədər yükləmirlər və bununla da batareyanın ömrünə qənaət edirlər) Siz düşünə bilərsiniz ki, əgər proqram yaddaşdan istifadə etməyə davam edirsə, siz onu boşaltmaq üçün əl ilə silmək. Ancaq bunu etməli deyilsiniz, çünki iOS bunu sizin yerinizə edəcək. Böyük miqdarda RAM istifadə edən bir oyun kimi arxa planda dayandırılmış tələbkar bir tətbiqiniz varsa, iOS lazım olduqda onu avtomatik olaraq yaddaşdan siləcək və siz proqram işarəsinə toxunaraq onu yenidən başlada bilərsiniz.
Bu vəziyyətlərin heç biri çoxşaxəli paneldə əks olunmur, proqramın dayandırılmasından, dayandırılmasından və ya fonda işləməsindən asılı olmayaraq, panel yalnız bu yaxınlarda işə salınmış proqramların siyahısını göstərir. Siz həmçinin qeyd edə bilərsiniz ki, hazırda işləyən proqram Çoxlu tapşırıqlar panelində görünmür
Fon tapşırıqları
Normalda Home düyməsini sıxdığınız zaman proqram arxa planda işləyəcək və siz ondan istifadə etmirsinizsə, beş saniyə ərzində avtomatik olaraq fasilə verəcək. Beləliklə, məsələn, podkast yükləyirsinizsə, sistem onu işləyən proqram kimi qiymətləndirir və dayandırılmasını on dəqiqə gecikdirir. Ən geci on dəqiqədən sonra proses yaddaşdan çıxarılır. Bir sözlə, yükləməni tamamlamaq üçün 10 dəqiqədən çox vaxt çəkməzsə, Əsas Düyməni basaraq yükləməni dayandırmaqdan narahat olmaq lazım deyil.
Arxa planda qeyri-müəyyən qaçış
Fəaliyyətsizlik halında, sistem beş saniyə ərzində tətbiqi dayandırır, yükləmələr halında isə dayandırma on dəqiqə gecikir. Bununla belə, arxa planda işləməyi tələb edən az sayda proqram var. iOS 5-də qeyri-müəyyən müddətə arxa planda işləyə bilən proqramların bəzi nümunələri bunlardır:
- Səs çalan və bir müddət kəsilməli olan proqramlar (telefon zəngi zamanı musiqinin dayandırılması və s.),
- Məkanınızı izləyən proqramlar (naviqasiya proqramı),
- VoIP zəngləri qəbul edən proqramlar, məsələn, Skype-dan istifadə edirsinizsə, hətta proqram fonda olduqda belə, zəng qəbul edə bilərsiniz.
- Avtomatik yükləmələr (məsələn, Qəzet köşkü).
Bütün proqramlar artıq tapşırıq yerinə yetirmirsə (məsələn, fon yükləmələri) bağlanmalıdır. Bununla belə, yerli Mail proqramı kimi davamlı olaraq arxa planda işləyən istisnalar var. Əgər onlar arxa planda işləyirlərsə, yaddaş, CPU istifadəsini tutur və ya batareyanın ömrünü azaldır
Qeyri-müəyyən müddətə arxa fonda işləməyə icazə verilən proqramlar musiqi oxumaqdan tutmuş yeni Podcast epizodlarını endirməyə qədər işləyərkən etdikləri hər şeyi edə bilər.
Daha əvvəl qeyd etdiyim kimi, istifadəçi heç vaxt arxa planda işləyən proqramları bağlamağa ehtiyac duymur. Bunun yeganə istisnası, fonda işləyən proqramın qəzaya uğraması və ya yuxudan düzgün oyanmamasıdır. İstifadəçi daha sonra çox tapşırıq çubuğunda tətbiqləri əl ilə bağlaya bilər, lakin bu, nadir hallarda olur.
Beləliklə, ümumiyyətlə, fon proseslərini idarə etməyə ehtiyac yoxdur, çünki sistem onlarla özü məşğul olacaq. Buna görə iOS belə təzə və sürətli bir sistemdir.
Tərtibatçının nöqteyi-nəzərindən
Tətbiq çoxlu tapşırıqların bir hissəsi kimi cəmi altı müxtəlif vəziyyətlə reaksiya verə bilər:
1. applicationWillResignActive
Tərcümədə bu vəziyyət o deməkdir ki, tətbiq gələcəkdə (bir neçə millisaniyəlik məsələ) aktiv proqram (yəni, ön planda olan proqram) olmaqdan çıxacaq. Bu, məsələn, proqramdan istifadə edərkən zəng qəbul edərkən baş verir, lakin eyni zamanda, bu üsul da proqram arxa plana keçməzdən əvvəl bu vəziyyətə səbəb olur, buna görə də bu dəyişiklikləri nəzərə almaq lazımdır. Bu üsul həm də ona görə uyğundur ki, məsələn, daxil olan zəng olduqda yerinə yetirdiyi bütün fəaliyyətləri dayandırsın və zəngin sonuna qədər gözləsin.
2. applicationDidEnterBackground
Vəziyyət proqramın arxa plana keçdiyini göstərir. Tərtibatçılar bu üsuldan fonda işləməsi lazım olmayan bütün prosesləri dayandırmaq və istifadə olunmamış məlumatların yaddaşını və digər prosesləri təmizləmək üçün istifadə etməlidirlər, məsələn, vaxtı bitən taymerlər, yüklənmiş şəkilləri yaddaşdan mütləq tələb olunmayacaq şəkildə silmək və ya bağlamaq. proqramın arxa planda əlaqələri tamamlaması kritik olmadığı halda serverlərlə bağlantılar. Tətbiqdə metod çağırıldıqda, onun bir hissəsinin arxa planda işləməsi tələb olunmursa, o, əsasən tətbiqi tamamilə dayandırmaq üçün istifadə edilməlidir.
3. proqramWillEnterForeground
Bu vəziyyət, tətbiqin aktiv vəziyyətə istefa verəcəyi ilk vəziyyətin əksidir. Vəziyyət sadəcə o deməkdir ki, yuxu proqramı arxa plandan davam edəcək və növbəti bir neçə millisaniyə ərzində ön planda görünəcək. tərtibatçılar proqram arxa planda olarkən qeyri-aktiv olan prosesləri davam etdirmək üçün bu üsuldan istifadə etməlidirlər. Serverlərlə əlaqə yenidən qurulmalı, taymerlər sıfırlanmalı, şəkillər və məlumatlar yaddaşa yüklənməlidir və digər zəruri proseslər istifadəçi yüklənmiş proqramı yenidən görməzdən əvvəl bərpa oluna bilər.
4. proqramDidBecomeActive
Dövlət proqramın ön plana bərpa edildikdən sonra yenicə aktivləşdiyini göstərir. Bu, istifadəçi interfeysinə əlavə düzəlişlər etmək və ya UI-ni orijinal vəziyyətinə qaytarmaq və s. üçün istifadə edilə bilən bir üsuldur. Bu, əslində istifadəçinin proqramı artıq ekranda gördüyü anda baş verir, ona görə də bunu müəyyən etmək lazımdır. bu üsulda və əvvəlki üsulda baş verənlərə diqqət yetirin. Onlar bir neçə millisaniyəlik fərqlə bir-birinin ardınca çağırılır.
5. Tətbiq Bitəcək
Bu vəziyyət proqramın çıxışından bir neçə millisaniyə əvvəl, yəni proqramın həqiqətən dayandırılmasından əvvəl baş verir. Ya çox tapşırıqdan əl ilə, ya da cihazı söndürərkən. Metod emal edilmiş məlumatları saxlamaq, bütün fəaliyyətləri bitirmək və artıq lazım olmayacaq məlumatları silmək üçün istifadə edilməlidir.
6. proqramDidReceiveMemoryWarning
Ən çox müzakirə olunan sonuncu dövlətdir. Lazım gələrsə, sistem resurslarından lazımsız istifadə edərsə, proqramın iOS yaddaşından silinməsinə görə məsuliyyət daşıyır. Mən iOS-un fon proqramları ilə nə etdiyini dəqiq bilmirəm, lakin digər proseslərə resursları buraxmaq üçün proqrama ehtiyacı olarsa, o, yaddaşında olan hər hansı resursları buraxmaq barədə xəbərdarlıq edir. Beləliklə, bu üsul tətbiqdə çağırılır. Tərtibatçılar onu elə həyata keçirməlidirlər ki, proqram onun ayırdığı yaddaşdan imtina etsin, davam edən hər şeyi yadda saxlasın, lazımsız məlumatları yaddaşdan təmizləsin və əks halda yaddaşı adekvat şəkildə azad etsin. Düzdür, bir çox tərtibatçılar, hətta yeni başlayanlar belə şeylər haqqında düşünmürlər və ya başa düşmürlər və sonra belə şeylər ola bilər ki, onların tətbiqi batareyanın ömrünü təhdid edir və/yaxud sistem resurslarını hətta arxa planda da lazımsız şəkildə istehlak edir.
Hökm
Bu altı dövlət və onlarla əlaqəli üsullar iOS-da bütün "çox tapşırıqların" fonudur. Tərtibatçılar tətbiqin istifadəçilərinin cihazlarında nələr yaratdığına, onların minimuma endirilməsinə və ya sistemdən xəbərdarlıq almasına və s.-yə görə məsuliyyət daşımağa ehtiyac olduğunu nəzərə almamaq şərtilə əla sistemdir.
Mənbə: macworld.com
Müəlliflər: Jakub Požárek, Martin Doubek (ArnieX)
Sizin də həll etməli olduğunuz problem varmı? Məsləhətə ehtiyacınız varmı və ya bəlkə də düzgün tətbiq tapırsınız? Bölmədəki forma vasitəsilə bizimlə əlaqə saxlamaqdan çəkinməyin Məsləhət, növbəti dəfə sualınıza cavab verəcəyik.
Salam, həqiqətən gözəl məqalə, amma bunun üçün texniki dəstəyiniz varmı? Mən yatmazdan əvvəl axşam bir neçə dəfə batareyanı həll etdiyim üçün və belə oldu ki, wi-fi və mobil data söndürüldükdə, wi-fi söndürülmüş və yalnız 3G ilə başqa bir vəziyyətdən daha çox vaxt apardı.
Təəssüf ki, təcrübə ondan ibarətdir ki, iOS-da tətbiqlər əl ilə söndürülməlidir və sistem artıq əvvəlki kimi yaxşı işləmir.
Mən iPhone-u Windows Phone (Samsung Omnia W for 6200,-) ilə əvəz etdim və sistemin sürəti tamam başqa səviyyədədir.
Qorxuram ki, Windows 8 Metro planşetləri çıxanda iPad-i də əvəz edəcəm...
@007 – bəli, əgər siz köhnə iPhone3G-ləri yeni WP-lərlə müqayisə edirsinizsə, bəli (bunu kim gözləyirdi?) WP bir az daha sürətli olacaq. Əks təqdirdə, Karlulka haqqında dedi-qodular sizinlə yaxşı getmir və indiki HW ilə müqayisə etmək yerinə düşərdi. Mən də WP7 aldım və nəhayət, WP4-dən tamamilə fərqli istifadə səviyyəsini təmsil edən 7s ilə başa çatdım. Beləliklə, plitələr arasından xoş və sonsuz sürüşdürün.
Mən Paja ilə tamamilə razıyam
Başqa bir barelin dağıntılarından yenə töhfə verərdim - Samsung Galaxy S və iPhone 4 - Yaş baxımından müqayisə edilə bilərmi deyərdim? İOS 4 dövründə və Android-dən başqa bir yerdə istifadəyə yararlılıq və sürət baxımından Apple proqramlarla işləmək konsepsiyasını çox yaxşı həll etdi, lakin eyni şey artıq Android üçün keçərli deyil. Nəhayət, mən hər halda 4S ilə başa çatdım və heç bir şikayətim yoxdur, çünki "sadəcə işləyir" .. və çox tez işləyir!
Nəzəriyyə gözəldir... Amma praktikada hələ də barda tətbiqi bağlayıram ;)
Təşəkkürlər, çox maraqlı, praqmatik, maraqlı, yelləncəkdən və dərinlikdən əskik deyil. İndiki gənclərin bu qadağan olunmuş brendə olan vəsvəsəsini əhəmiyyətli dərəcədə vurğulamaq! Amma onun üçün, eləcə də bu məqalə üçün təşəkkür edirəm.
Məqalə tamamilə səhvdir.
Səhv bildirildiyi kimi Əsas səhifə düyməsi basıldıqda proqram sönmür, ancaq fasilə verir. yəni. mütləq yaddaşdan silməyin və çıxmayın. Sadəcə işə fasilə verin, iOS bu proqrama 0% CPU vaxtı verəcək. Məqalədə deyildiyi kimi, iDevice yaddaşının heç bir yerində mütləq "mübadilə" etmir. Bu, həqiqətən, proqram keçidindən istifadə etməyin mümkün olması sayəsindədir.
Telefonun daha yüksək prioritetli digər proqramları işə salmaq üçün yaddaşı az olduqda proqram yaddaşdan silinir (adətən başqa proqram ön planda işləyir).
Birinci halda, siz haqlısınız, tərcümə xətası idi. Swap-a gəlincə, biz burada ondan danışmırıq, iOS cihazındakı yaddaşdan deyil, əməliyyat yaddaşından danışırıq.
Tətbiqin təsviri əmrlə yenidən işə salınana qədər məhdud müddət yaddaşda saxlanılır (bax: 13,7 GB-dan 16 GB: 2,3 GB sistem və dayandırılmış proqramlar üçün ayrılıb)
Beləliklə, Naviqasiya, Skype və bu kimi proqramları bir-birindən fərqləndirmək lazımdır, bu proqramlar hətta fonda da aktiv qalır və ya müəyyən funksiya bitmir və məsələn, onun yeri və ya yerləşdiyi yer haqqında məlumatların göndərilməsini davam etdirir. Və ya Vokul kimi pord rejimində qulaq asın və çoxlu tapşırıq hələ də fonda dinləyir.
Bu proqramlar batareyanı boşaldır və onları əl ilə bağlamaq və iOS-u gözləmək lazımdır. başqaları ilə bu lazım deyil, yalnız tətbiq qəzaya uğradıqda.
Mən məqalə ilə razılaşa bilmirəm. Min. 1-ci nəsil iPad-də (iOS 5.0.1) çoxta tapşırıqlar panelində çoxlu "açıq" proqramlarımın və ya bir neçəsinin olub-olmadığını görmək aydındır. iOS yaddaşı təmizləməyə çalışır, lakin bu, açıq-aydın kifayət deyil - RAM-in kiçik ölçüsü, ehtimal ki, onun ən böyük zəifliyidir.
ona görə də çox şey sistemdən və istifadə olunan avadanlıqdan asılıdır, bunun iOS 1 ilə iPad 5.0.1-də 2-ci nəsil iPad-də olduğundan daha pis olacağı tamamilə məntiqlidir.
Üzr istəyirik, dostum, bu onun işləməli olduğu İDEAL üsulun təsviridir. Təəssüf ki, reallıq tamam başqadır və siz Apple məhsullarından ən azı mənim qədər (yəni arabir) istifadə etsəniz, bunu biləcəksiniz.
"Siz tez-tez iOS-da fonda işləyən proqramların əməliyyat yaddaşını doldurduğuna dair xurafatları eşidə bilərsiniz"
Bu, mövhumat deyil, sadəcə bir həqiqətdir. Axı siz məqalədə bunu özünüz iddia edirsiniz.
"Əvvəlcə qeyd etdiyim kimi, istifadəçi heç vaxt arxa planda işləyən proqramları bağlamamalıdır."
CANLIQ. Bu sadəcə boşboğazlıqdır, alma təbliğatıdır, mənə əsəbiləşməyin.
“Ancaq bunu etməli deyilsiniz, çünki iOS bunu sizin yerinizə edəcək. Böyük miqdarda RAM istifadə edən bir oyun kimi arxa planda dayandırılmış tələbkar bir tətbiqiniz varsa, iOS lazım olduqda onu avtomatik olaraq yaddaşdan siləcək və siz proqram işarəsinə toxunaraq onu yenidən başlada bilərsiniz.”
Doğru deyil. Vəziyyət bir az fərqlidir. Tipik bir nümunə – mənim arxa planda işləyən tələbkar proqramlar var, mənə oyunlar lazımdır. Brauzeri işə salıram, bir neçə nişanı açıram -> daha çox yaddaş lazımdır. Nə olacaq? Arxa planda tələbkar proqramları saxlayıram, əksinə, BRAUZER ÖZÜ DÜŞÜR. Tələb olunan proqramları əl ilə bağlasam, brauzer uzun müddət problemsiz işləyir.
Bu nəzəriyyə deyil, praktikadır. Və mən təəccüblənirəm ki, Apple məhsulunun uzunmüddətli istifadəçisi olaraq siz hələ də bunu bilmirsiniz.
Təşəkkürlər, bu çox yaxşı təsvir edilmişdir və yaxşı izah edilmişdir. Mənə çox kömək etdin ;-) ♥
Başlamaq üçün, mən Android-də olduğu kimi iOS-un nə tərəfdarı, nə də əleyhinəyəm, amma burada yazıldığı kimi bir neçə qəribə şey var: “iOS-da tətbiq qəzası ilə nadir hallarda rastlaşırsınız”, sonra Android proqramlarının çökməsi ilə. ildə təxminən bir dəfə: -P
http://dotekomanie.blog.mobilmania.cz/2012/02/stabilita-ios-vs-android/
Bəli, amma tətbiqi əl ilə bağlamalı olduğunuz hallar həqiqətən minimaldır, mən ondan təxminən bir dəfə istifadə etdim? ;-) və Mobilemania-dan müqayisəli testə keçid vermək tamamilə mənasızdır, Google-un ödədiyi reklamlar haqqında oxumaq istəyəndə ora baxacam ;-) hər kəs əlində istənilən android telefonu ala bilər və bu təmiz işləməyəcək, yəni Galaxy Nexus istisna olmaqla, sistem az-çox xüsusi hazırlanmışdır. Ümumiyyətlə, Android bir fəlakətdir
@Mek – Mən bir neçə ildir ki, hər gün Apple məhsullarından istifadə edirəm və bu heç vaxt mənim başıma gəlməyib, ona görə də nəzəriyyəniz birtəhər işləmir.
S:
@redakce – Siz görə bilərsiniz ki, internet saytı daim üzərində işləyir və ya onunla nəsə baş verir, lakin məndə elə bir hiss var ki, hər şeyin lazım olduğu kimi işləməsi bir həftə çəkmir. Və mən daha bura gəlmirəm, çünki yeni görünüş mənə yaraşmır. Ən azı iPhone-da mobil versiyadan istifadə etdim, amma indi heç işləmir - necə oldu? Onlar hazırda şərhlərdəki yazılara cavab vermirlər.
@SteveJSF Təəssüf ki, işlər həmişə bizim istədiyimiz kimi olmur. Cavablara gəlincə, yeni SEO plagini onları pozdu, hazırda həll olunur.
WP-Touch da nədənsə xidmətimizi dayandırdı, ona görə də bu plaqindən daha yaxşı həll yolu tapmağa qərar verdik. Beləliklə, tezliklə növbəti xəbərləri gözləyə bilərsiniz :-)
Gözəl məqalə. Təcrübəyə gəlincə, demək istərdim ki, mən bir neçə şeylə razıyam və çox vaxt qeyd edildiyi kimi işləyir, amma təəssüf ki, hələ də düzgün olmayan zəif yazılmış ərizələr var və sonra belə hallar var. bəzi oxucular tərəfindən qeyd edilmişdir. Mən hesab edirəm ki, Skype çox yaxşı nümunədir, mən təcrübədən bilirəm ki, o, hələ də arxa planda işləyir (və bu yaxşıdır və belə də olmalıdır), lakin problem ondadır ki, bu proqram cihazın batareyasını çox boşaldır və Mən daha düzgün görə bilmirəm. Əksinə, Facebook, Badoo kimi proqramlar və s. onlar da hələ də arxa planda işləyirlər, lakin onların istehlakı demək olar ki, hiss olunmur (ən azı heç nə hiss etmirəm). Beləliklə, səhvin fərdi tətbiqlərdə olduğunu düşünürəm. Hansıları bilsəniz, yalnız bunları əl ilə söndürmək kifayət edərdi!
Belə ki, praktika ondan ibarətdir ki, Facebook lazım olduqda, Skype isə yalnız lazım olduqda işləyir.
Bəli, digər tərəfdən, əgər batareyaya qənaət etməliyəmsə və iPhone-u mümkün qədər uzun müddət "canlı" saxlamalı olduğumu bilsəm, mən də multitaskingdə lazımsız olan hər şeyi söndürürəm, lakin əsasən bunun böyük təsiri yoxdur, lakin zərurət yaranarsa, 3G-ni, bütün mobil interneti, WiFi-ni, məkan xidmətlərini, təyyarə rejimini, işıqlandırma gücünü və s.-ni məhdudlaşdırıram. Rutinin bir hissəsi olaraq, çoxlu tapşırıqlarda yuxarıda qeyd olunan proqramları da söndürürəm.
Odur ki, şəxsən mən məqalənin doğru olduğunu düşünürəm, təəssüf ki, bəzi proqramçılar öz tətbiqləri ilə bunları təkzib edirlər, çünki onların tətbiqləri düzgün deyil və mənim fikrimcə, bunun üçün yalnız iki həll yolu var 1. Əgər proqramdan istifadə etməmək mümkünsə və mümkünsə alternativ və ya 2. Əgər mümkün deyilsə, məsələn, Skype-a baxın, bunu hesabatda verilmiş proqramçıya yazın və ümid edin ki, onlar bununla bağlı nəsə edəcəklər.
Tətbiqləri əl ilə söndürmək mənasız ola bilər, amma hər halda bunu edirəm. Mən də proqram sistemini söndürməməyə çalışdım, onları işə salmağa (yaxud arxa planda yuxuda buraxmağa) icazə verməyim və batareyanın ömrü çox az idi, təxminən üç həftədən sonra iPad 2-ni yenidən başlatmaq lazım idi, yavaş-yavaş cavab verdi. Beləliklə, mən proqramları əl ilə söndürürəm, batareya daha uzun müddət davam edir, mən bu yaxınlarda Milad günündə yenidən başladım və yaxşı işləyir.
Yeri gəlmişkən, mən də eyni şeyi Mac OS X-də edirəm, sadəcə mənə lazım olmayan proqramı bağlayıram (CMD+Q), bu, onun arxa planda yatması və lüzumsuz yerə RAM yeməsindən daha yaxşıdır (hansı OS X bunu edə bilər? t çox yaxşı işləyir). Məndə az RAM var, cəmi 8 GB, lakin Windows 7-də 8 GB ilə sistem yavaş reaksiya vermədi və ya dəyişdirmədi, OS X-də bu olduqca yaygın bir fenomendir (mən kompüteri heç vaxt söndürməmişəm, Mac ilə də edirəm, buna görə də bir ay və daha çox işləmə müddəti istisna deyil, problem ondadır ki, mən bəzən RAM-i boşaltmaq və "sürətləndirmək" üçün ehtiyat tədbiri olaraq Mac-ı yenidən başlatmalı oluram, Windows 7-nin buna ehtiyacı yoxdur).
Məni daha çox tətbiqi necə partlatmaq maraqlandırır. Mənə nə oldu ki, proqram (xüsusilə Geocaching-də) ana serverdən nəsə yüklədiyi vəziyyətə düşdü və bu vəziyyətdə ilişib qaldı. Əsas səhifə düyməsi işlədi, yenidən başladıqdan sonra donmuş vəziyyətə qayıtdı (buraxdığım yer). Əl ilə çıxış (çox dadlı menyuya, işarəni basıb saxlayın və bağlamaq üçün mənfi) = proqram yox oldu, yenidən başladıqdan sonra o, donduğu yerdə orijinal vəziyyətdə açıldı. Beləliklə, mən hər şeyi bağladım, telefonu söndürdüm, yandırdım, HOME-a iki dəfə klik etdim və bax - proqramlar söndürülməzdən əvvəl bağlanmazdan əvvəl olduğu kimi hamısı orada idi. Yenidən başlatma da kömək etmədi - isti olana qədər evdə və yuxarıda saxlayın. Kömək edən yeganə şey tətbiqi telefondan silmək, onu yenidən başlatmaq və telefona yenidən quraşdırmaq idi. Nədənsə götürmədim.
Bu Multitasking idarəetməsi işləyir və bu vəziyyətlərin öhdəsindən gəlmək tərtibatçılardan asılıdır. Bütün vəziyyətin daha ətraflı və peşəkar təsviri ilə maraqlananlar üçün bunun necə olduğunu burada yazacağam.
Tətbiq cəmi 6 ştata cavab verə bilər və bu dövlətlər:
applicationWillResignActive
applicationDidEnterBackground
applicationWillEnterForeground
proqramDidBecomeActive
tətbiqi dayandırılacaq
proqramDidReceiveMemoryWarning
İndi bu dövlətləri daha ətraflı təsvir etməyə çalışacağam.
applicationWillResignActive – bu status o deməkdir ki, gələcəkdə (bir neçə millisaniyəlik məsələ) tətbiq aktiv proqram (yəni ön planda olan proqram) kimi istefa verəcək, bu, məsələn, proqramdan istifadə edərkən zəng qəbul edərkən baş verir, lakin eyni zamanda Bu metod hətta proqram arxa plana keçməmişdən əvvəl işə düşəcək, ona görə də bu dəyişiklikləri nəzərə almalısınız. Bu üsul həm də ona görə uyğundur ki, məsələn, daxil olan zəng olduqda yerinə yetirdiyi bütün fəaliyyətləri dayandırsın və zəngin sonuna qədər gözləsin.
applicationDidEnterBackground - bu status proqramın arxa plana keçdiyini göstərir, tərtibatçılar fonda işləməsi mütləq olmayan bütün prosesləri dayandırmaq və yaddaşı istifadə olunmamış məlumatlardan və digər proseslərdən təmizləmək üçün bu üsuldan istifadə etməlidirlər, məsələn, vaxtı bitən taymerləri silmək lazımdır. Tətbiqin arxa planda əlaqəni tamamlaması kritik deyilsə, mütləq lazım olmayacaq və ya serverlərlə əlaqəni dayandıran yaddaş yüklü şəkillər. Əsasən, proqramda çağırılan bu üsul, əgər onun bir hissəsinin arxa planda işləməsi tələb olunmursa, tətbiqi tamamilə dayandırmaq üçün istifadə edilməlidir.
applicationWillEnterForeground – bu vəziyyət tətbiqin aktiv vəziyyətə keçəcəyi ilk vəziyyətin əksidir. Bu proqram vəziyyəti sadəcə olaraq o deməkdir ki, növbəti bir neçə millisaniyə ərzində yuxuda olan proqram arxa plandan davam edəcək və ön planda görünəcək (tətbiq ön plana daxil olur), bu üsul tərtibatçılar tərəfindən proqram işləyərkən qeyri-aktiv olan prosesləri davam etdirmək üçün istifadə edilməlidir. arxa planda serverlərlə əlaqə yenidən qurulmalı, taymerlər sıfırlanmalı, şəkillər və məlumatlar yaddaşa yüklənməlidir və digər zəruri proseslər istifadəçi yüklənmiş proqramı yenidən görməzdən əvvəl davam edə bilər.
applicationDidBecomeActive – bu status proqramın ön plana qaytarıldıqdan sonra yenicə aktivləşdiyini göstərir, bu, istifadəçi interfeysinə əlavə düzəlişlər etmək və ya UI-ni orijinal vəziyyətinə qaytarmaq və s. üçün istifadə edilə bilən bir üsuldur. Bu üsul əslində baş verir. istifadəçi artıq ekranda görə bildikdə, balans hesabatından bu üsulda və əvvəlki üsulda nə baş verdiyini müəyyən etmək lazımdır. Bir neçə millisaniyəlik fərqlə bir-birinin ardınca çağırılırlar.
applicationWillTerminate - bu vəziyyət tətbiqin dayandırılmasından bir neçə millisaniyə əvvəl, yəni tətbiqin həqiqətən dayandırılmasından əvvəl baş verir. Ya çox tapşırıqdan əl ilə, ya da cihazı söndürərkən. Bu üsul işlənmiş məlumatları saxlamaq və bütün fəaliyyətləri bitirmək və artıq lazım olmayacaq məlumatları silmək üçün istifadə edilməlidir.
applicationDidReceiveMemoryWarning - və bu, burada çox müzakirə olunan bir şərtdir, lazım gələrsə, sistem resurslarından lazımsız istifadə edərsə iOS proqramı yaddaşdan siləcək. Mən iOS-un fon proqramları ilə nə etdiyini dəqiq bilmirəm, lakin digər proseslərə resursları buraxmaq üçün proqrama ehtiyacı olarsa, o, saxladığı resursları buraxmaq üçün yaddaş xəbərdarlığı ilə onu təklif edir. Beləliklə, bu üsul tətbiqdə çağırılır və tərtibatçılar onu həyata keçirməlidirlər ki, proqram özündə olan yaddaşdan imtina etsin, işlənmişləri saxlasın və lazımsız məlumatları yaddaşdan silsin və əks halda yaddaşı adekvat şəkildə azad etsin. Düzdür, bir çox tərtibatçılar, məsələn, yeni başlayanlar, belə şeylər haqqında düşünmürlər və ya onları başa düşmürlər və sonra onların tətbiqi batareyanın ömrünü təhlükə altına sala və/yaxud arxa planda belə sistem resurslarını lazımsız şəkildə istehlak edə bilər. Tətbiq yaddaş xəbərdarlığı aldıqdan sonra heç nə etməsə və əvvəlki kimi sistem resurslarını istehlak etməyə davam edərsə, iOS-un necə davranacağını bilmirəm.
Bu bir neçə ştat və əlaqəli üsullar iOS-da bütün "çox tapşırıqlılığın" arxasındadır... əgər tərtibatçılar tətbiqlərin minimuma endirildiyi təqdirdə onların istifadəçilərinin cihazlarında nələr yaradacağına cavabdeh olmaq ehtiyacına məhəl qoymurlarsa, bu əla sistemdir. və ya sistemdən xəbərdarlıqlar alın və daha çox…
Ümid edirəm ki, bu qısa təsvir hər şeyin rəvan işləməsində tətbiqin necə iştirak etdiyini anlamağa kömək edir. Beləliklə, demək olar ki, istifadəçi tərəfindən səhv istifadənin səhvi olduğunu söyləmək mümkündür, bunu başa düşmək olar - həvəskar tərtibatçıların əsasən pulsuz proqramlarından çox sayda istifadə etsəniz, iOS cihazınız böyük bir proqram istifadə etdiyinizdən daha pis işləyəcək. təcrübəli və ya peşəkar tərtibatçılardan pulsuz və ödənişli proqramların sayı. Bu o demək deyil ki, hər iki dairədə istisnalar yoxdur. Məsələn, foursquare olduqca qəribə və tələbkar davranır və eyni zamanda, onların yaddaş və batareyanın idarə edilməsinə çox vaxt ayıran çox bacarıqlı tərtibatçılar olduğunu gözləmək olardı, lakin bunun əksi doğrudur. 4SQ ilə bağlı ən böyük problem serverlərlə ünsiyyətdir, hansı ki, tez-tez asılır və sıxılır. Bu, hətta tanınmış proqramların belə problemlərinin olmasının bir nümunəsidir ki, bu da 4SQ-nun əla xidmət olması faktını dəyişdirmir.
Əyləncəli alma!! :)
Müəllifin icazəsi ilə məlumatı məqaləyə əlavə etdik ;-)
Bağışlayın, ENTER paraqraflar arasında hər yerdə idi, onlar burada bununla bağlı nəsə edə bilərdilər ki, şərhlərdə az da olsa ZƏNGİN MƏTN FORMATLAMA olsun.
ArnieX: Şərh üçün təşəkkürlər!!
Həmin Fəramir: Mən sadəcə sizin probleminiz haqqında, bilmirəm sizin işinizdə də kömək edəcəkmi, amma öz təcrübəmdən bilirəm ki, proqramı bağlasanız (çox tapşırıqlı rejimdə) onun bağlanması bir neçə saniyə çəkir. ona görə də onu söndürsəniz, mütləq bitənə qədər bir neçə saniyə gözləməyi (əmin olmaq üçün təqribən 10 saniyə gözləyirəm) tövsiyə edirəm və yalnız bundan sonra onu yenidən işə salıram.
Xoş gəldiniz ;) İmkanım olsa kömək etməkdən məmnun olaram.
Meeb ilə necə olmaq lazımdır, mən onun vasitəsilə ICQ və ya FB çatına daxil olanda o, 10 dəqiqədən sonra avtomatik çıxış edir və mən oflayn oluram yoxsa işləməyə davam edir? aydınlaşdırdığınız üçün təşəkkürlər :P
On dəqiqədən sonra tətbiqin İnternetlə əlaqəsi sadəcə olaraq kəsilir. Bununla belə, siz hələ də Meeba serverində onlayn olacaqsınız və kimsə sizə yazsa, təkan bildirişi alacaqsınız. Tətbiqi yenidən açdıqdan sonra əlaqə bir anda qurulacaq və siz xoşbəxtliklə söhbətə davam edə bilərsiniz.
Beləliklə, əgər əlaqələndirdiyiniz məqaləni düzgün başa düşdümsə, statistika yalnız işə salındıqda tətbiq qəzalarına istinad edir ki, bu da qəzaların baş verə biləcəyi halların kifayət qədər kiçik bir faizidir. Ona görə də bu “araşdırma”dan belə nəticəyə gəlmək mümkün deyil ki, iOS mənim fikrimcə daha az stabildir. Bundan əlavə, Forbes-dən götürülmüş məqalənin tərcüməçisi qeyd etməyi unudub ki, proqram qəzaları haqqında məlumat verən şirkət digərləri ilə yanaşı Google tərəfindən də dəstəklənir (“Crittercism, which is supported by Google Ventures,...”).