Domovská » jak » Co se stane, když přejdete přes Android App z seznamu posledních aplikací?

    Co se stane, když přejdete přes Android App z seznamu posledních aplikací?

    Jakmile přesunete aplikaci z aktuálně běžících aplikací Android do aplikace, co se stane s aplikací a datami? Přečtěte si, jak vyšetřujeme.

    Dnešní zasedání Otázky a odpovědi se k nám přichází s laskavým svolením Android Enthusiast - dílčího rozdělení Stack Exchange, skupiny komunitně řízených webů.

    Otázka

    Android čtenář nadšenců Eldarerathis je zvědavý na funkci procházení aplikací, která vám umožní vytáhnout seznam běžících aplikací pomocí tlačítka domovské stránky a pak je přetáhněte doprava, pravděpodobně je zavřete:

    Nedávný seznam aplikací ve službě Ice Cream Sandwich přidal možnost vynechávat aplikace ze seznamu, čímž je trvale odmítá (a pokud vím, že je to funkce vanilky, nikoliv CM / vlastní ROM). Dokumentace a zdůraznění platformy se nezdá, že by pokrývaly fungování této funkce, ale jsou zvědaví, co vlastně systém dělá.

    Dále jsem se přidal ke své zvědavosti a rozhodl jsem se udělat rychlý test: začal jsem hudbu na instalaci CM9 a pak jsem se vyhnul. Poté jsem zkontroloval seznam posledních aplikací a zjistil, že je skutečně tam (a ve správném stavu na základě miniatury). Pak jsem vstoupil Nastavení-> Aplikace a síla zastavila aplikaci Hudba, ale byla stále uvedena v posledním seznamu, což vedlo k domněnce, že není spojena s procesy, které se v pozadí vyskytují.

    Uvědomuji si, že hudba možná byla špatná volba, ale také jsem testoval pomocí aplikace USA Today. Toto mělo v podstatě stejné chování a zdálo se, že je po "silovém zastavení" (což dává smysl) nucen "znovu oživit", ačkoli miniaturu v posledním seznamu aplikací neodpovídala tomuto (v mezipaměti, hádám?).

    Takže, co se vlastně děje na úrovni operačního systému, když přetáhnete aplikaci z posledního seznamu? Zbavuje se to jednoduše vymazání dat z paměti RAM a vybírání odpadu zničí jeho uložený stav?

    Co přesně se děje, když přetáhnete pryč ze seznamu?

    Odpovědi

    Android entuziast přispěvatel Austin Mills nabízí nějaký pohled:

    Přetahování aplikací z nedávného seznamu aplikací je vanilka, a ano, není dobře zdokumentováno. Toto bylo téma slušného množství diskuzí na různých fórech pro platformu Android ... zdá se, že shoda je nejlépe popsána v některých komentářích: že chování je podobné, ale není to totéž jako uzavření aplikace - obecně (u aplikací, které nedefinujte explicitní ovládání zpětných tlačítek), je to totéž, jako to, že jste dostali dostatek času zpět z aplikace, která z ní vyjedete.

    Odkaz obsahuje další podrobnosti o specifikacích, ale obecně o tom můžete považovat za ukončení aplikace.

    Speciální pro aplikaci Hudba, věřím, že spouští službu, takže i když samotný úkol (aplikace Hudba / UI) může být uzavřen, služba se nadále spouští na pozadí, takže hudba se náhle nezastaví jen proto, že úloha byl vyčištěn z důvodů správy paměti. To mohlo mít vliv na to, co jste viděli.

    Potom se Eldarerathis podílel na životním cyklu otázky a odpovědi a vrátil se s nějakým vlastním výzkumem, aby odpověděl:

    Zdá se mi, že jsem našel magické hledané výrazy, které vedly k vysvětlení od zaměstnanců společnosti Google. Konkrétně jsem našel pár různých míst, kde Dianne Hackbornová vysvětluje, co se stane, když vyndáte něco z nedávného seznamu. První je komentář jedné z jejích příspěvků v Google+:

    [W] K tomu se zvlášť stane, když odskočíte nedávnou úlohou, je: (1) zabije jakékoli pozadí nebo prázdné procesy aplikace (viz zde to, co to znamená) a (2) používá nové rozhraní API, žádost o odstranění úkolu, takže může dělat, co považuje za vhodné.

    Ona také poznámky v blogu komentář:

    Ve skutečnosti odstranění položky v nedávných úkolech zabije všechny procesy na pozadí, které pro daný proces existují. Nebude to přímo způsobeno zastavováním služeb, avšak je k dispozici rozhraní API, které jim umožňuje zjistit, že úkol byl odstraněn, aby se rozhodlo, zda to bude znamenat, že by se mělo zastavit. Je to tak, že odstranění řekne, že nedávný úkol e-mailové aplikace způsobí, že přestane kontrolovat e-mail.

    Pokud opravdu chcete aplikaci úplně zastavit, můžete dlouho stisknout poslední úkoly, abyste se dostali k informacím o aplikaci a stisknout tam silnou sílu. Zastavit sílu je úplné zabít aplikace - všechny procesy jsou zabity, všechny služby byly zastaveny, všechny oznámení odstraněny, všechny poplachy odstraněny atd. Aplikace není povoleno znovu spustit, dokud výslovně nepožádá.

    Zdá se tedy, že souhrn je, že přetahování aplikace ze seznamu nejdříve zabije všechny procesy na pozadí aplikace, poté použijte onTaskRemoved upozornit aplikaci na odstranění pozadí. V tomto okamžiku vypadá, že je na příslušné aplikaci, aby se rozhodla, co se děje, takže myslím, že tam technicky není tvrdé a rychlé pravidlo o tom, co se stane s aplikací za tímto bodem.


    Musíte něco přidat k vysvětlení? Vypadněte v komentářích. Chcete se dozvědět více odpovědí od ostatních uživatelů technologie Stack Exchange? Podívejte se na celý diskusní příspěvek zde.