Úvodná » ako » Čo sa stane práve vtedy, keď prejdete cez aplikáciu Android z zoznamu posledných aplikácií?

    Čo sa stane práve vtedy, keď prejdete cez aplikáciu Android z zoznamu posledných aplikácií?

    Keď preskočíte aplikáciu zo zoznamu v súčasnosti so systémom Android, čo sa stane s aplikáciou a údajmi? Čítajte ďalej počas vyšetrovania.

    Dnešná relácia otázok a odpovedí sa k nám prihlásila s láskavým nadšením od Android Enthusiast - subdivíziu Stack Exchange, zoskupenia webových stránok typu Q & A.

    Otázka

    Android nadšený čitateľ Eldarerathis je zvedavý na funkciu prichytenia aplikácie, ktorá vám umožňuje vytlačiť zoznam bežiacich aplikácií pomocou tlačidla domáceho počítača a potom ich posunúť doprava, pravdepodobne ich zatvoriť:

    Nedávny zoznam aplikácií v aplikácii Ice Cream Sandwich pridala možnosť vynechať aplikácie zo zoznamu, čím ich zamietli natrvalo (a pokiaľ viem, je to funkcia vanilky, nie CM / vlastná ROM). Zdá sa, že dokumentácia a zdokonalenie platformy nepokrývajú fungovanie tejto funkcionality pod kapotou, ale som zvedavý, aký systém skutočne robí.

    Pridávam k mojej zvedavosti, rozhodol som sa urobiť rýchly test: začal som hudbu na inštalácii CM9 a potom som sa vyhol. Potom som skontroloval zoznam posledných aplikácií a videl som, že to tam bolo (a v správnom stave na základe miniatúry). Potom som vstúpil Settings> Applications a silou zastavila aplikáciu Hudba, ale bola stále uvedená v poslednom zozname, čo ma viedlo k presvedčeniu, že nie je spojená s procesmi pretrvávajúcimi v pozadí.

    Uvedomujúc si teraz, že hudba bola pravdepodobne zlá voľba, taktiež som testoval pomocou aplikácie USA Today. Toto malo v podstate rovnaké správanie a zdálo sa, že to bolo nútené "opätovne spustiť" po silovej zastávke (čo dáva zmysel), hoci miniatúra v poslednom zozname aplikácií neodzrkadľovala toto (v cache, hádam?).

    Takže, čo sa vlastne stane na úrovni operačného systému, keď prechádzate aplikáciou z posledného zoznamu? Jednoducho vymaže dáta aplikácie z pamäte RAM a odpadky ju zhromaždia a zničí ich uložený stav?

    Čo presne prebieha, keď prechádzate cez zoznam zo zoznamu?

    Odpovede

    Android entuziast prispievateľ Austin Mills ponúka niekoľko vhľad:

    Premiestňovanie aplikácií z posledného zoznamu aplikácií je vanilka a áno, nie je dobre zdokumentované. Toto bolo téma dôstojnej diskusie o rôznych fórach pre systém Android ... zdá sa, že konsenzus je najlepšie opísaný v niektorých komentároch: správanie je podobné, ale nie úplne rovnaké ako zatváranie aplikácie - vo všeobecnosti (pre aplikácie, ktoré nedefinujte explicitné ovládanie tlačidla spätného chodu), je to isté ako zasiahnutie späť dostatok časov z aplikácie, ktorú z nej odídete.

    Odkaz obsahuje niekoľko podrobností o špecifikách, ale celkovo to môžete považovať za ukončenie aplikácie.

    Špecifické pre aplikáciu Hudba verím, že začína službu, takže zatiaľ čo samotná úloha (aplikácia Hudba / používateľské rozhranie) môže byť uzavretá, služba sa naďalej beží na pozadí, aby sa vaša hudba náhle nezastavila len preto, že úloha dostal vyčistený z dôvodov správy pamäte. To mohlo mať vplyv na to, čo ste videli.

    Potom, keď sa Erdarerathis zúčastnil na kruhu otázok a odpovedí, vrátil sa s vlastným výskumom, aby vyriešil odpoveď:

    Zdá sa, že som našiel magické hľadané výrazy, ktoré viedli k vysvetleniam od zamestnancov spoločnosti Google. Konkrétne som našiel niekoľko rôznych miest, kde Dianne Hackborn vysvetľuje, čo sa stane, keď prehodíte niečo z posledného zoznamu. Prvá je komentár k jednej z jej príspevkov v službe Google+:

    [W] špeciálne sa stáva, keď prejdete prstom nedávnou úlohou: (1) zabije akékoľvek pozadie alebo prázdne procesy aplikácie (pozri to, čo to znamená) a (2) používa nové rozhranie API na vysvetlenie akýchkoľvek služieb žiadosť o odstránenie úlohy, aby mohla robiť všetko, čo považuje za vhodné.

    Ona tiež poznamenáva v komentári blogu:

    Odstránenie položky v nedávnych úlohách skutočne zabije akékoľvek procesy na pozadí, ktoré existujú v procese. Nebude to priamo spôsobiť zastavenie služieb, avšak pre nich je API, aby zistili, že úloha bola odstránená, aby sa rozhodlo, či to chce znamenať, že by mali prestať. Je to tak, že odstránenie povedať, že nedávna úloha e-mailovej aplikácie nebude spôsobovať, že prestane kontrolovať e-mail.

    Ak naozaj chcete úplne zastaviť aplikáciu, môžete dlho stlačiť najnovšie úlohy, aby ste sa dostali k informáciám o aplikácii a stlačte tam silu. Vynútené zastavenie je úplné zabitie aplikácie - všetky procesy sú zabité, všetky služby sú zastavené, všetky upozornenia odstránené, odstránené všetky alarmy atď. Aplikácia nesmie spustiť znova, kým sa výslovne nevyžiada.

    Zdá sa teda, že zhrnutie je, že presunutie aplikácie zo zoznamu najskôr zabije všetky procesy na pozadí aplikácie, potom použite onTaskRemoved oznámiť aplikácii, že úloha na pozadí bola odstránená. V tomto bode sa zdá, že je na aplikácii rozhodnúť, čo sa stane, takže myslím, že tam technicky nie je tvrdé pravidlo o tom, čo sa stane s aplikáciou za týmto bodom.


    Máte niečo doplniť vysvetlenie? Vyjadrite sa v komentároch. Chcete sa dozvedieť viac odpovedí od iných používateľov technickej úrovne Stack Exchange? Pozrite sa na celý diskusný príspevok tu.