Există încă o mulțime de oameni care nu știu cum funcționează multitasking-ul în iOS. Pentru început, totuși, este necesar să subliniem că acesta nu este un adevărat multitasking, ci o soluție foarte inteligentă care nu îngreunează sistemul sau utilizatorul.
Se pot auzi adesea superstiții conform cărora aplicațiile care rulează în fundal în iOS umplu memoria de operare, ceea ce duce la încetinirea sistemului și la durata de viață a bateriei, așa că utilizatorul ar trebui să le dezactiveze manual. Bara multitasking nu conține de fapt o listă cu toate procesele în fundal care rulează, ci doar cele mai recente aplicații lansate. Deci, utilizatorul nu trebuie să-și facă griji cu privire la procesele care rulează în fundal, cu excepția câtorva cazuri. Când apăsați butonul Home, aplicația intră de obicei în stare de repaus sau se închide, astfel încât să nu mai încarce procesorul sau bateria și să elibereze memoria necesară dacă este necesar.
Acest lucru nu este multitasking cu drepturi depline atunci când aveți zeci de procese care rulează în prim-plan, care este întreruptă sau complet oprită dacă este necesar. Doar câteva procese secundare rulează în fundal. De aceea, rar vei întâlni o blocare a aplicației pe iOS, de exemplu Android este copleșit de aplicații care rulează de care trebuie să aibă grijă utilizatorul. Pe de o parte, acest lucru face ca lucrul cu dispozitivul să fie neplăcut și, pe de altă parte, provoacă, de exemplu, pornire lentă și tranziții între aplicații.
Tipul de rulare al aplicației
Aplicația de pe dispozitivul tău iOS se află într-una dintre aceste 5 stări:
- Alergare: aplicația este pornită și rulează în prim-plan
- Fundal: încă rulează, dar rulează în fundal (putem folosi alte aplicații)
- Suspendat: Folosește în continuare RAM, dar nu rulează
- Inactiv: aplicația rulează, dar comenzi indirecte (de exemplu, când blocați dispozitivul cu aplicația care rulează)
- Nu alearga: Aplicația s-a încheiat sau nu a început
Confuzia vine atunci când aplicația trece în fundal pentru a nu deranja. Când apăsați butonul Acasă sau utilizați gestul pentru a închide aplicația (iPad), aplicația trece în fundal. Majoritatea aplicațiilor sunt suspendate în câteva secunde (sunt stocate în memoria RAM a iDevice-ului astfel încât să poată fi lansate rapid, nu încarcă atât de mult procesorul și astfel economisesc durata de viață a bateriei) S-ar putea să credeți că dacă o aplicație continuă să folosească memoria, aveți pentru a o șterge manual pentru a o elibera. Dar nu trebuie să faci asta, pentru că iOS o va face pentru tine. Dacă aveți o aplicație solicitantă suspendată în fundal, cum ar fi un joc care utilizează o cantitate mare de RAM, iOS o va șterge automat din memorie atunci când este necesar și o puteți reporni atingând pictograma aplicației.
Niciuna dintre aceste stări nu se reflectă în bara multitasking, bara arată doar o listă de aplicații lansate recent, indiferent dacă aplicația este oprită, întreruptă sau rulează în fundal. De asemenea, puteți observa că aplicația care rulează în prezent nu apare în panoul Multitasking
Sarcini de fundal
În mod normal, când apăsați butonul Acasă, aplicația va rula în fundal, iar dacă nu o utilizați, se va întrerupe automat în cinci secunde. Deci, dacă descărcați un podcast, de exemplu, sistemul îl evaluează ca pe o aplicație care rulează și întârzie terminarea cu zece minute. După zece minute cel târziu, procesul este eliberat din memorie. Pe scurt, nu trebuie să vă faceți griji că vă întrerupeți descărcarea prin apăsarea butonului Acasă, dacă nu durează mai mult de 10 minute pentru ao finaliza.
Alergare nedefinită în fundal
În caz de inactivitate, sistemul închide aplicația în cinci secunde, iar în cazul descărcărilor, terminarea este amânată cu zece minute. Cu toate acestea, există un număr mic de aplicații care necesită rularea în fundal. Iată câteva exemple de aplicații care pot rula în fundal pe termen nelimitat în iOS 5:
- Aplicații care redă sunet și trebuie întrerupte pentru un timp (întreruperea muzicii în timpul unui apel telefonic etc.),
- Aplicații care vă urmăresc locația (software de navigare),
- Aplicațiile care primesc apeluri VoIP, de exemplu dacă utilizați Skype, puteți primi un apel chiar și atunci când aplicația este în fundal,
- Descărcări automate (de ex. Chioșc de ziare).
Toate aplicațiile ar trebui să fie închise dacă nu mai efectuează o sarcină (cum ar fi descărcări în fundal). Cu toate acestea, există excepții care rulează în fundal continuu, cum ar fi aplicația nativă Mail. Dacă rulează în fundal, ocupă memorie, consumă CPU sau reduc durata de viață a bateriei
Aplicațiile cărora li se permite să ruleze în fundal pe termen nelimitat pot face orice fac în timp ce rulează, de la redarea muzicii până la descărcarea de noi episoade Podcast.
După cum am menționat anterior, utilizatorul nu trebuie să închidă niciodată aplicațiile care rulează în fundal. Singura excepție de la aceasta este atunci când o aplicație care rulează în fundal se blochează sau nu se trezește corect din somn. Utilizatorul poate apoi închide manual aplicațiile în bara multitasking, dar acest lucru se întâmplă rar.
Deci, în general, nu trebuie să gestionați procesele de fundal, deoarece sistemul se va ocupa singur de ele. De aceea iOS este un sistem atât de proaspăt și rapid.
Din perspectiva dezvoltatorului
Aplicația poate reacționa cu un total de șase stări diferite ca parte a multitasking:
1. applicationWillResignActive
În traducere, această stare înseamnă că aplicația va renunța în viitor (căteva milisecunde) de la a fi aplicația activă (adică aplicația din prim-plan). Acest lucru se întâmplă, de exemplu, atunci când primiți un apel în timp ce utilizați aplicația, dar, în același timp, această metodă provoacă și această stare înainte ca aplicația să treacă în fundal, așa că trebuie să țineți cont de aceste modificări. Această metodă este potrivită și pentru ca, de exemplu, să suspende toate activitățile pe care le desfășoară atunci când există un apel de intrare și să aștepte până la sfârșitul apelului.
2. applicationDidEnterBackground
Starea indică faptul că aplicația a trecut în fundal. Dezvoltatorii ar trebui să folosească această metodă pentru a suspenda toate procesele care nu trebuie neapărat să ruleze în fundal și pentru a șterge memoria datelor neutilizate și a altor procese, cum ar fi temporizatoarele care expiră, ștergerea imaginilor încărcate din memorie care nu vor fi neapărat necesare sau închiderea conexiuni cu servere, cu excepția cazului în care este esențial ca aplicația să finalizeze conexiunile în fundal. Când metoda este invocată într-o aplicație, ar trebui utilizată în esență pentru a suspenda complet aplicația dacă o parte a acesteia nu este necesară pentru a rula în fundal.
3. applicationWillEnterForeground
Această stare este opusă primei stări, în care aplicația va renunța la starea activă. Starea înseamnă pur și simplu că aplicația de dormit va relua din fundal și va apărea în prim-plan în următoarele câteva milisecunde. dezvoltatorii ar trebui să folosească această metodă pentru a relua orice proces care a fost inactiv în timp ce aplicația a fost în fundal. Conexiunile la servere ar trebui să fie restabilite, cronometrele resetate, imaginile și datele încărcate în memorie și alte procese necesare pot fi reluate chiar înainte ca utilizatorul să vadă din nou aplicația încărcată.
4. applicationDidBecomeActive
Starea indică faptul că aplicația tocmai a devenit activă după ce a fost restaurată în prim-plan. Aceasta este o metodă care poate fi folosită pentru a face ajustări suplimentare la interfața cu utilizatorul sau pentru a restabili UI la starea inițială etc. Acest lucru se întâmplă de fapt în momentul în care utilizatorul vede deja aplicația pe afișaj, deci este necesar să determinați cu prudență ce se întâmplă în metoda acestei și în metoda anterioară. Sunt numite unul după altul cu o diferență de câteva milisecunde.
5. applicationWillTerminate
Această stare se întâmplă cu câteva milisecunde înainte de ieșirea aplicației, adică înainte ca aplicația să se termine efectiv. Fie manual din multitasking, fie la oprirea dispozitivului. Metoda ar trebui folosită pentru a salva datele prelucrate, pentru a încheia toate activitățile și pentru a șterge datele care nu vor mai fi necesare.
6. applicationDidReceiveMemoryWarning
Este ultima stare care este cel mai discutată. Acesta este responsabil pentru, dacă este necesar, ștergerea aplicației din memoria iOS dacă folosește resursele sistemului în mod inutil. Nu știu exact ce face iOS cu aplicațiile de fundal, dar dacă are nevoie de o aplicație pentru a elibera resurse pentru alte procese, îi solicită cu un avertisment de memorie să elibereze orice resurse are. Deci această metodă este numită în aplicație. Dezvoltatorii ar trebui să o implementeze astfel încât aplicația să renunțe la memoria pe care a alocat-o, să salveze tot ce este în curs, să ștergă datele inutile din memorie și, în caz contrar, să elibereze în mod adecvat memoria. Este adevărat că mulți dezvoltatori, chiar și începători, nu se gândesc și nu înțeleg astfel de lucruri și atunci se poate întâmpla ca aplicația lor să amenințe durata de viață a bateriei și/sau să consume inutil resursele sistemului, chiar și în fundal.
verdict
Aceste șase stări și metodele lor asociate sunt fundalul tuturor „multitasking-ului” din iOS. este un sistem grozav, atâta timp cât dezvoltatorii nu ignoră faptul că este nevoie să fie responsabili cu privire la ceea ce aplicația aruncă pe dispozitivele utilizatorilor lor, dacă aceștia sunt minimizați sau primesc avertismente de la sistem și așa mai departe.
sursa: macworld.com
Autori: Jakub Požárek, Martin Doubek (ArnieX)
Ai si tu o problema de rezolvat? Ai nevoie de sfaturi sau poate găsești aplicația potrivită? Nu ezitați să ne contactați prin formularul din secțiune Consiliere, data viitoare vă vom răspunde la întrebare.
Bună, foarte tare articol, dar mă întreb dacă aveți suport tehnic pentru el. Pentru ca am rezolvat bateria de mai multe ori seara inainte de a merge la culcare si s-a intamplat ca cu wifi si date mobile oprite sa dureze mai mult decat intr-un alt caz cu wifi oprit si doar 3G.
Din păcate, experiența este că în iOS, aplicațiile trebuie să fie oprite manual, iar sistemul nu mai funcționează la fel de bine ca înainte.
Mi-am înlocuit iPhone-ul cu un Windows Phone (Samsung Omnia W pentru 6200,-) și viteza sistemului este la un nivel complet diferit.
Mi-e teamă că atunci când vor ieși tabletele Windows 8 Metro, voi înlocui și iPad-ul...
@007 – da, dacă comparați vechile iPhone3G-uri cu cele noi WP, atunci da (cine s-ar fi așteptat la asta?) WP-ul va fi ceva mai rapid. În rest, bârfele despre Karlulka nu ți se potrivesc bine și era cazul să compari actualul HW. Am cumpărat și WP7 și am ajuns în cele din urmă cu 4s, ceea ce reprezintă un nivel de utilizare complet diferit față de WP7. Așa că treceți plăcut și derulați la nesfârșit prin plăci.
Sunt total de acord cu Paja
As contribui din nou din resturile unui alt butoi - Samsung Galaxy S si iPhone 4 - as zice comparabil ca vechime? Pe vremea iOS 4, și din punct de vedere al uzabilității și vitezei undeva în afară de Android, Apple a rezolvat foarte bine conceptul de a lucra cu aplicații, dar nu la fel se mai întâmplă și cu Android. Până la urmă, oricum am ajuns cu 4S și nu am nicio plângere, pentru că „doar funcționează” .. și funcționează foarte repede!
Teoria e frumoasa... Dar in practica, inca inchid aplicatia in bara ;)
Mulțumesc, foarte interesant, pragmatic, interesant, nu duce lipsă de swing și profunzime. Subliniind semnificativ obsesia tinerilor de azi pentru acest brand interzis! Dar mulțumesc pentru ea, precum și pentru acest articol.
Articolul este complet greșit.
Aplicația nu se închide atunci când este apăsat butonul Acasă, așa cum s-a spus eronat, ci se întrerupe. i.e. cu siguranță nu ștergeți din memorie și nu renunțați. Întrerupeți rularea, iOS va oferi acestei aplicații 0% timp CPU. Cu siguranță nu se „schimbă” nicăieri în memoria iDevice, așa cum se spune în articol. Este cu adevărat datorită faptului că este posibil să utilizați comutarea aplicației.
Aplicația este eliminată din memorie atunci când telefonul are puțină memorie pentru a rula alte aplicații cu o prioritate mai mare (de obicei, o altă aplicație rulează în prim-plan).
În primul caz, ai dreptate, a fost o eroare de traducere. Cât despre swap, nu vorbim despre asta aici, vorbim despre memoria de operare, nu despre spațiul de stocare din dispozitivul iOS.
imaginea aplicației este stocată în memorie pentru un timp limitat până când este invocată din nou printr-o comandă (vezi 13,7 GB din 16 GB: cei 2,3 GB sunt rezervați pentru sistem și aplicații suspendate)
Astfel, este necesar să se facă distincția între aplicații precum Navigation, Skype și altele asemenea, aceste aplicații rămân active chiar și în fundal, sau o anumită funcție nu se termină și continuă, de exemplu, să trimită date despre locația sa sau informații despre locație. Sau ca Vokul în modul pord ascultați și multitasking-ul este încă ascultat în fundal.
Aceste aplicații consumă bateria și este necesar să le închideți manual și să nu așteptați iOS. cu altele nu este necesar, acolo doar în cazul în care aplicația se blochează.
Nu pot fi de acord cu articolul. Min. pe un iPad de prima generație (iOS 1) este clar să văd dacă am o mulțime de aplicații „deschise” în bara multitasking sau doar câteva. iOS încearcă să curețe memoria, dar evident că nu este suficient - dimensiunea mică a RAM este probabil cea mai mare slăbiciune.
deci depinde mult de sistem si hardware-ul folosit, este destul de logic ca va fi mai rau pe un iPad 1 cu iOS 5.0.1 decat daca ar fi pe un iPad de a 2-a generatie
Ne pare rău, prietene, aceasta este o descriere a modului IDEAL în care ar trebui să funcționeze. Din păcate, realitatea este cu totul alta și ai ști asta dacă ai folosi produse Apple, cel puțin la fel de mult ca mine (adică ocazional).
„Puteți auzi adesea superstiții că aplicațiile care rulează în fundal în iOS umplu memoria de operare.”
Nu este o superstiție, este doar un fapt. La urma urmei, o pretindeți singur în articol.
„Așa cum am menționat anterior, utilizatorul nu trebuie să închidă niciodată aplicațiile care rulează în fundal.”
PROSTII. E doar o prostie, propagandă Apple, nu te supăra pe mine.
„Dar nu trebuie să faci asta, pentru că iOS o va face pentru tine. Dacă aveți o aplicație solicitantă suspendată în fundal, cum ar fi un joc care utilizează o cantitate mare de RAM, iOS o va elimina automat din memorie atunci când este necesar și o puteți reporni atingând pictograma aplicației.”
Neadevarat. Situația este puțin diferită. Un exemplu tipic – am aplicații solicitante care rulează în fundal, am nevoie de jocuri. Lansez browserul, deschid câteva file -> am nevoie de mai multă memorie. Ce se va intampla? Continui sa solicit aplicatii in fundal, dimpotriva, BROWSERUL INSUSI CADE. Dacă închid manual aplicațiile solicitante, browserul funcționează mult timp fără probleme.
Aceasta este practică, nu teorie. Și sunt surprins că, în calitate de utilizator pe termen lung al unui produs Apple, încă nu știi acest lucru.
Mulțumesc, este foarte bine descris și bine explicat. M-ai ajutat destul de mult ;-) ♥
Pentru început, nu sunt nici pro, nici împotriva iOS, la fel ca cu Android, dar aici sunt câteva lucruri ciudate, dacă așa cum scrie aici: „rareori întâlnești o blocare a aplicației cu iOS”, apoi cu aplicațiile Android crash. cam o data pe an: -P
http://dotekomanie.blog.mobilmania.cz/2012/02/stabilita-ios-vs-android/
Da, dar cazurile în care trebuie să închideți manual aplicația sunt într-adevăr minime, am folosit-o cam o dată? ;-) și a da un link către testul comparativ de la Mobilemania este destul de inutil, când vreau să citesc despre publicitatea pe care a plătit-o Google, o să arunc o privire acolo ;-) oricine poate lua în mână orice telefon Android și acesta nu va funcționa curat, adică cu excepția Galaxy Nexus, care este sistemul mai mult sau mai puțin personalizat. Per total, Android este un dezastru
@Mek – Folosesc zilnic produse Apple de câțiva ani și nu mi s-a întâmplat niciodată asta, așa că teoria ta nu funcționează cumva.
Vechi:
@redakce – Puteți vedea că site-ul web se lucrează în mod constant sau se întâmplă ceva cu el, dar am senzația că nu este nevoie de o săptămână pentru ca totul să funcționeze așa cum ar trebui. Și nu prea vin aici, pentru că noul look nu mi se potrivește. Cel puțin am folosit versiunea mobilă pe iPhone, dar acum nu merge deloc - cum de? Momentan nu răspund la postările din comentarii.
@SteveJSF Din păcate, lucrurile nu devin întotdeauna așa cum ne dorim. Cât despre răspunsuri, noul plugin SEO le-a spart, în prezent este în curs de rezolvare.
De asemenea, WP-Touch a reziliat serviciul nostru din anumite motive, așa că am decis să venim cu o soluție mai bună decât acest plugin. Așa că puteți aștepta cu nerăbdare următoarele știri în curând :-)
Frumos articol. In ceea ce priveste practica, as dori sa spun ca sunt de acord cu mai multe lucruri si de cele mai multe ori functioneaza asa cum s-a spus, dar din pacate mai sunt aplicatii prost scrise care nu se comporta corect si apoi sunt cazuri ca acela. remarcat de unii cititori. Cred că Skype este un exemplu foarte bun, știu din practică că încă rulează în fundal (și bine și așa ar trebui să fie), dar problema este că această aplicație consumă foarte mult bateria dispozitivului și Nu o mai văd corect. Dimpotrivă, aplicații precum Facebook, Badoo etc. mai ruleaza si in fundal, dar consumul lor este aproape insesizabil (cel putin eu nu observ niciunul). Deci, cred că eroarea este în aplicațiile individuale. Dacă ai ști care dintre ele, ar fi suficient să le oprești manual doar pe acelea!
Deci practica este că Facebook rulează după cum este necesar și Skype numai atunci când este necesar.
Ei bine, pe de altă parte, dacă trebuie să economisesc bateria și știu că trebuie să țin iPhone-ul „în viață” cât mai mult timp, opresc și tot ce nu este necesar în multitasking, dar în general nu are un impact mare, dar dacă este necesar limitez 3G, tot internetul mobil, WiFi, servicii de localizare, modul avion, puterea luminii etc. Ca parte a rutinei, opresc și aplicațiile menționate mai sus în multitasking.
Așa că personal cred că articolul este adevărat, din păcate unii programatori resping aceste lucruri cu aplicațiile lor, deoarece aplicațiile lor sunt incorecte și după părerea mea există doar două soluții pentru aceasta 1. Dacă este posibil să nu folosești aplicația și să găsești un alternativă, dacă este posibil, sau 2. Dacă nu este posibil, consultați de exemplu Skype, scrieți-l programatorului dat în raport și sperați că vor face ceva în acest sens.
Poate fi inutil să dezactivez aplicațiile manual, dar o fac oricum. De asemenea, am încercat să nu opresc sistemul de aplicații, să le las să ruleze (sau să le las adormite în fundal) și durata de viață a bateriei a fost mult mai mică, a fost și necesar să repornesc iPad 2 după vreo trei săptămâni, a răspuns încet. Așa că opresc aplicațiile manual, bateria ține mai mult, am repornit recent în ziua de Crăciun și merge bine.
Apropo, eu fac același lucru în Mac OS X, doar închid aplicația de care nu am nevoie (CMD+Q), e mai bine decât să o adorm în fundal și să mănânc RAM inutil (ceea ce OS X poate' nu lucrez cu foarte bine). Am puțină RAM, doar 8 GB, dar cu 7 GB în Windows 8, sistemul nu a reacționat lent sau a schimbat, în OS X acesta este un fenomen destul de comun (nu am oprit niciodată computerul, o fac și cu Mac, deci o lună și mai mult timp de până nu este o excepție, problema este că uneori trebuie să repornesc Mac-ul ca măsură de precauție pentru a elibera RAM și a „accelerează”, Windows 7 nu are nevoie de asta).
Sunt mai interesat de cum să explodez aplicația. Ce mi s-a întâmplat a fost că aplicația (în special pe Geocaching) a intrat într-o stare în care încărca ceva de pe serverul părinte și s-a blocat în acea stare. Butonul de pornire a funcționat, după repornire a revenit la starea înghețată (de unde am rămas). Ieșire manuală (în meniul multigust, țineți apăsată pictograma și minus pentru a închide) = aplicația a dispărut, după repornire s-a deschis în starea inițială unde a înghețat. Așa că am închis totul, am oprit telefonul, l-am pornit, am făcut dublu clic pe HOME și iată - aplicațiile erau toate acolo așa cum erau înainte de a fi închise chiar înainte de a se opri. Nici repornirea nu a ajutat - țineți acasă și sus până se încălzește. Singurul lucru care a ajutat a fost eliminarea aplicației de pe telefon, repornirea acesteia și reinstalarea acesteia pe telefon. Cumva nu am luat-o.
Acest management multitasking funcționează și depinde de dezvoltatori să facă față acestor situații. Pentru cei interesați de o descriere mai detaliată și profesională a întregii situații, voi scrie aici cum este.
Aplicația poate răspunde la un total de 6 stări, iar aceste stări sunt:
applicationWillResignActive
applicationDidEnterBackground
applicationWillEnterForeground
applicationDidBecomeActive
applicationWillTerminate
applicationDidReceiveMemoryWarning
Acum voi încerca să descriu aceste stări mai detaliat.
applicationWillResignActive – această stare înseamnă că în viitor (în câteva milisecunde) aplicația va demisiona ca aplicație activă (adică aplicația din prim-plan) acest lucru se întâmplă, de exemplu, atunci când primiți un apel în timp ce utilizați aplicația, dar în același timp timp această metodă se va declanșa chiar înainte ca aplicația să intre în fundal, așa că trebuie să țineți cont de aceste modificări. Această metodă este potrivită și pentru ca, de exemplu, să suspende toate activitățile pe care le desfășoară atunci când există un apel de intrare și să aștepte până la sfârșitul apelului.
applicationDidEnterBackground - această stare indică faptul că aplicația a intrat în fundal, dezvoltatorii ar trebui să utilizeze această metodă pentru a suspenda toate procesele care nu trebuie neapărat să ruleze în fundal și să curățeze memoria de date neutilizate și alte procese, de exemplu, cronometrele de expirare, ștergerea de la imagini încărcate în memorie care nu vor fi neapărat necesare sau vor întrerupe conexiunea cu serverele dacă nu este esențial ca aplicația să finalizeze conexiunea în fundal. Practic, această metodă atunci când este apelată în aplicație ar trebui utilizată pentru a suspenda complet aplicația dacă o parte a acesteia nu este necesară pentru a rula în fundal.
applicationWillEnterForeground – această stare este opusă primei stări când aplicația va renunța la starea activă. Această stare a aplicației înseamnă pur și simplu că în următoarele câteva milisecunde aplicația în stare de repaus va relua din fundal și va apărea în prim-plan (aplicația intră în prim-plan), această metodă ar trebui să fie folosită de dezvoltatori pentru a relua orice proces care a fost inactiv în timp ce aplicația a fost în fundal, conexiunile la servere ar trebui restabilite, cronometrele resetate, imaginile și datele încărcate în memorie și alte procese necesare pot fi reluate chiar înainte ca utilizatorul să vadă din nou aplicația încărcată.
applicationDidBecomeActive – această stare indică faptul că aplicația tocmai a devenit activă după ce a fost restaurată în prim-plan, aceasta este o metodă care poate fi folosită pentru a face ajustări suplimentare la interfața cu utilizatorul sau pentru a restabili UI la starea inițială etc. această metodă se întâmplă de fapt când utilizatorul deja poate vedea pe display, deci este necesar să se determine din bilanţ ce se întâmplă în această metodă şi în metoda anterioară. Sunt numite unul după altul cu o diferență de câteva milisecunde.
applicationWillTerminate - această stare se întâmplă cu câteva milisecunde înainte ca aplicația să se termine, adică înainte ca aplicația să se termine efectiv. Fie manual din multitasking, fie la oprirea dispozitivului. Această metodă ar trebui utilizată pentru a salva datele prelucrate și pentru a încheia toate activitățile și pentru a șterge datele care nu vor mai fi necesare.
applicationDidReceiveMemoryWarning - și aceasta este o condiție despre care se discută mult aici, dacă este necesar, iOS va elimina aplicația din memorie dacă folosește resursele sistemului în mod inutil. Nu știu exact ce face iOS cu aplicațiile de fundal, dar dacă are nevoie de o aplicație pentru a elibera resurse pentru alte procese, îi solicită cu un avertisment de memorie să elibereze resursele pe care le deține. Deci această metodă este numită în aplicație, iar dezvoltatorii ar trebui să o implementeze astfel încât aplicația să renunțe la memoria pe care o are, să salveze cele procesate și să șteargă datele inutile din memorie și, în caz contrar, să elibereze în mod adecvat memoria. Este adevărat că mulți dezvoltatori, de exemplu începătorii, nu se gândesc la astfel de lucruri sau nu le înțeleg și atunci se poate întâmpla ca aplicația lor să pună în pericol durata de viață a bateriei și/sau să consume inutil resurse de sistem chiar și în fundal. Nu știu cum se va comporta iOS dacă aplicația nu face nimic după ce a primit un avertisment de memorie și continuă să consume resurse de sistem ca înainte.
Aceste câteva state și metode asociate se află în spatele întregului „multitasking” în iOS... este un sistem grozav dacă dezvoltatorii nu ignoră nevoia de a fi responsabili cu privire la ceea ce aplicațiile vor arunca pe dispozitivele utilizatorilor lor dacă sunt minimizate. sau primiți avertismente de la sistem și multe altele...
Sper că această scurtă descriere vă va ajuta să înțelegeți cum este implicată aplicația pentru ca totul să funcționeze fără probleme. Deci este aproape posibil să spunem că este o greșeală de utilizare incorectă de către utilizator, ceea ce poate fi înțeles ca - dacă utilizați în mare parte aplicații gratuite de la dezvoltatori amatori în număr mare, dispozitivul dvs. iOS va funcționa mai rău decât dacă utilizați un număr de aplicații gratuite și plătite de la dezvoltatori experimentați sau profesioniști. Acest lucru nu înseamnă că nu există excepții în ambele cercuri. De exemplu, foursquare se comportă destul de ciudat și solicitant și, în același timp, ne-am aștepta deja să fie dezvoltatori foarte pricepuți, care acordă mult timp gestionării memoriei și bateriei, dar invers este adevărat. Cea mai mare problemă cu 4SQ este comunicarea cu serverele, care adesea se blochează și este copleșită. Acesta este doar un exemplu al faptului că și aplicațiile binecunoscute au probleme, ceea ce nu schimbă faptul că 4SQ este un serviciu grozav.
Distracție plăcută Merele!! :)
Am adăugat informațiile la articol cu permisiunea autorului ;-)
Îmi pare rău, ENTER a fost peste tot între paragrafe, ar putea face ceva în privința asta aici, astfel încât comentariile să aibă măcar un pic de FORMATARE BOGAȚĂ TEXTULUI.
ArnieX: multumesc pentru comentariu!!
Către Faramir: Eu doar despre problema ta, nu știu dacă va ajuta în cazul tău, dar știu din proprie experiență că dacă închizi aplicația (în multitasking) durează câteva secunde până se închide, deci dacă il stingi, recomand sa astept cateva secunde (eu astept aprox. 10 secunde ca sa fiu sigur) pana se termina definitiv si abia apoi o remarc.
Cu plăcere ;) Voi ajuta cu plăcere dacă voi avea ocazia să contribui.
Cum ar trebui să fie cu Meeb, când mă conectez la ICQ sau la chatul FB prin intermediul lui, se deconectează automat după 10 minute și merg offline sau continuă să funcționeze? multumesc pentru precizare :P
După zece minute, conexiunea aplicației la Internet este pur și simplu întreruptă. Cu toate acestea, vei fi în continuare online pe serverul Meeba și vei primi o notificare push dacă cineva îți scrie. După redeschiderea aplicației, conexiunea se va stabili într-un moment și puteți continua să discutați cu bucurie.
Așadar, dacă am înțeles corect articolul pe care l-ai legat, statisticile se referă doar la blocările aplicației atunci când pornesc, ceea ce reprezintă un procent destul de mic din cazurile în care pot apărea blocări. Prin urmare, este imposibil de concluzionat din această „cercetare” că iOS este mai puțin stabil în opinia mea. Mai mult, traducătorul articolului preluat de la Forbes a uitat să menționeze că compania care furnizează date despre blocările aplicațiilor este susținută, printre altele, de Google („Crittercism, care este susținut de Google Ventures,...”).