9Aug

Kas tiksliai atsitinka, kai "Android" programą išskleidžiate iš nesenų programų sąrašo?

Kai perbraukite programą iš savo "Android" šiuo metu veikiančių programų sąrašo, kas tiksliai atsitinka su programa ir duomenimis? Perskaitykite, kaip mes tiriame.

Šiandienos klausimas &Atsakymų sesija ateina į mus su "Android Enthusiast" - "Stack Exchange", bendruomenės pagrįstos "Q & A" svetainių grupės dalimi.

Klausimas

"Android" entuziastų skaitytuvas "Eldarerathis" smalsu apie "programos" spustelėjimo funkciją, leidžiančią išplėsti savo programų sąrašą per namų mygtuką, tada perbraukite juos į dešinę, tikriausiai uždarykite juos:

Paskutinių programų sąrašas"Ice Cream Sandwich" pridėjo galimybę išbraukti programas iš sąrašo, taigi jas visam laikui atleidžia( ir, kiek žinau, tai yra vanilės funkcija, o ne CM / vartotojo ROM).Atrodo, kad dokumentacijos ir pagrindinės platformos neatitinka šios funkcijos neveikiančių funkcijų, tačiau įdomu sužinoti, ką sistema iš tikrųjų daro.

Dar labiau pridedant prie mano smalsumo, aš nusprendžiau atlikti greitą testą: pradėjau kurti muziką CM9 diegimo metu, po to atsisakiau. Tada aš patikrinou naujausią programų sąrašą ir pamatė, kad tai iš tikrųjų yra( ir tinkamoje būsenoje, remiantis miniatiūra).Tada aš nuvykau į "Nustatymai" & gt; "Programos" ir priversdama sustabdyti "Music" programą, tačiau ji vis dar buvo nurodyta paskutiniame sąraše, todėl manau, kad jis nesusijęs su procesais, kurie yra fone.

Suprasdamas, kad dabar muzika buvo prastas pasirinkimas, aš taip pat išbandžiau su "USA Today" programa. Tai parodė iš esmės tą patį elgesį, ir atrodė, kad jis buvo priverstas "iš naujo paleisti" po jėgos sustabdymo( o tai yra prasminga), nors paskutiniųjų programų sąrašo miniatiūra tai neatspindėjo( talpykloje, aš spėju?).

Taigi, kas iš tikrųjų atsitinka OS lygmenyje, jei perbraukite programą iš paskutinio sąrašo? Ar tai paprasčiausiai išvalo app duomenis iš RAM ir šiukšliadėžė ją surenka, sunaikindama išsaugotą būseną?

Kas tiksliai vyksta, kai išbraukite programą iš sąrašo?

Atsakymai "

" "Android Enthusiast" autorius "Austin Mills" siūlo keletą įžvalgų: "

Swiping" programos iš nesenų programų sąrašo yra vanilės, o taip, nėra gerai dokumentuojamos. Tai buvo tinkamo diskusijų apie įvairius "Android" forumus tema. .. atrodo, kad geriausiai čia yra keletas komentarų, kad elgesys yra panašus, bet ne tas pats, kaip uždaryti programą - apskritai( programoms, kuriosneapibrėžkite tiesioginio grįžimo mygtuko tvarkymo) tai yra tas pats dalykas, kuris nukrenta pakankamai laiko iš programos, kurią išeinate iš jos.

Nuoroda yra keletas išsamesnės informacijos apie konkrečias savybes, tačiau apskritai galvoja apie tai kaip apie paraiškos atsisakymą.

"Specific to the Music" programa, manau, kad ji pradeda paslaugą, taigi, nors pati užduotis( "Music app / UI") gali būti uždaryta, paslauga toliau veikia fone, kad jūsų muzika staiga nesustotų tik dėl to, kadUžduotys išvalytos dėl atminties valdymo priežasčių.Tai galėjo turėti įtakos tai, ką matėte.

Tada, dalyvaudama gyvenimo klausimuose ir atsakymuose, Eldarerathis sugrįžo su savo tyrimu, kad išskaidytų atsakymą:

atrodo, kad radau stebuklingus paieškos terminus, dėl kurių paaiškėjo "Google" darbuotojai. Konkrečiai, radau keletą skirtingų vietų, kuriuose Dianne Hackborn paaiškina, kas atsitinka, kai ką nors išbraukite iš paskutinio sąrašo. Pirmasis yra komentaras apie vieną iš savo "Google+" įrašų: "

[W]" skrybėlę būtent atsitinka, kai ištrinate naujausią užduotį:( 1) žudo bet kokį foną ar tuščius programos procesus( žr. Čia, ką tai reiškia);ir( 2) naudoja naują API, norėdamas pranešti apie bet kokias programos paslaugas apie pašalintą užduotį, kad ji galėtų daryti viską, ką mano esant tinkama.

Ji taip pat pažymi tinklaraščio komentarą:

Iš tikrųjų, pašalinus įrašą į paskutines užduotis, bus nužudyti visi esami proceso fono procesai. Tai tiesiogiai nesusiję su paslaugomis, tačiau jiems yra API, kad išsiaiškintumėte, kaip užduotis buvo pašalinta, kad nuspręstų, ar jie nori, kad tai reiškia, kad jie turėtų sustoti. Tai reiškia, kad pašalinus pasakykite apie neseniai atliktą el. Pašto programos užduotį, jis nebegalės patikrinti el. Pašto.

Jei tikrai norite visiškai sustabdyti programą, galite ilgai paspausti paskutines užduotis, eikite į programos informaciją ir paspauskite jėgos sustabdyti."Force stop" - tai visiškas programos nužudymas - visi procesai yra nužudyti, visos paslaugos sustojo, visi pranešimai buvo pašalinti, pašalinti visi įspėjimai ir pan. Programai neleidžiama vėl paleisti, kol nėra aiškiai paprašyta.

Taigi, atrodo, kad santrauka yra tai, kad iš sąrašo išbraukiant programą pirmiausia bus nužudyti visi programos foniniai procesai, tada naudokite "ToskRemoved", kad praneštumėte programai, kad fono užduotis buvo pašalinta. Tuo metu atrodo, kad programa turi nuspręsti, kas atsitiks, todėl aš manau, kad techniškai nėra sudėtinga taisyklė apie tai, kas nutinka programai.

Ar ką nors įtraukti į paaiškinimą?Garsas išjungtas komentaruose. Norite skaityti daugiau atsakymų iš kitų "Tech-savvy Stack Exchange" vartotojų?Patikrinkite visą diskusijų temą čia.