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

Obsah:

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

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

Video: Čo sa stane, keď prejdete cez aplikáciu Android z zoznamu posledných aplikácií?
Video: How to AUTOMATE Android Apps Using TASKER - YouTube 2024, Apríl
Anonim
Keď preskočíte aplikáciu zo zoznamu v súčasnosti so systémom Android, čo sa stane s aplikáciou a údajmi? Čítajte ďalej, keď prešetrujeme.
Keď preskočíte aplikáciu zo zoznamu v súčasnosti so systémom Android, čo sa stane s aplikáciou a údajmi? Čítajte ďalej, keď prešetrujeme.

Dnešná relácia otázok a odpovedí sa k nám dostane so zdvorilosťou Android Enthusiast - podskupiny Stack Exchange, skupín webových stránok týkajúcich sa otázok a odpovedí.

Otázka

Čítačka nadšencov Androidu Eldarerathis je zvedavá o funkciách, ktoré umožňujú vytiahnuť zo zoznamu spustených aplikácií pomocou tlačidla domáceho počítača a potom ich posunúť doprava, pravdepodobne ich zatvoriť:

The recent apps list in Ice Cream Sandwich added the ability to swipe apps out of the list, thereby dismissing them permanently (and as far as I know this is a vanilla function, not a CM/custom ROM one). The documentation and platform highlights don’t appear to cover the under-the-hood workings of this functionality, but I’m curious to know what the system is actually doing.

Further adding to my curiosity, I decided to do a quick test: I started up Music on a CM9 install, then backed out of it. I then checked the recent apps list and saw it was indeed there (and in the proper state, based on the thumbnail). I then went into

Settings->Applications

a silu zastavila aplikáciu Hudba, ale bola stále uvedená v poslednom zozname, čo ma viedlo k domnienke, že nie je spojená s procesmi, ktoré pretrvávajú v pozadí.

Uvedomujem si teraz, že Hudba môže byť zlá voľba, tiež som testoval s aplikáciou USA Today. Toto malo v podstate rovnaké správanie a zdálo sa, že je po "silovom zastavení" (čo dáva zmysel) nútený k "opätovnému spusteniu", hoci miniatúra v zozname nedávnych aplikácií neodrážala toto (v cache, hádam?).

Takže, čo sa vlastne deje na úrovni operačného systému, keď prechádzate aplikáciou z posledného zoznamu? Je to jednoducho vymazať dáta aplikácie z RAM a odpadky zbierať, zničiť jeho uložený stav?

Čo sa práve deje pri prechádzaní 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 na rôznych fórach pre Android … zdá sa, že konsenzus je najlepšie opísaný v niektorých komentároch: že 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 si o tom môžete myslieť ako o ukončení aplikácie.

Špecifické pre aplikáciu Hudba verím, že začína službu, takže zatiaľ čo samotná úloha (aplikácia Hudba / UI) môže byť uzavretá, služba bude naďalej bežať na pozadí, aby sa vaša hudba nezastavila len z dôvodu úlohy bolo odstránené z dôvodov správy pamäte. To mohlo mať vplyv na to, čo ste videli.

Potom sa Eldarerathis zúčastnil na kruhu otázok a odpovedí, keď sa vrátil s vlastným výskumom, aby odpovedal:

I appear to have found the magical search terms that led to some explanations from Google employees. Specifically, I found a couple of different places where Dianne Hackborn explains what happens when you swipe something out of the recent list. The first is a comment on one of her Google+ posts:

[W]hat specifically happens when you swipe away a recent task is it: (1) kills any background or empty processes of the application (see here for what this means), and (2) uses the new API to tell any services of the application about the task being removed so it can do whatever it thinks is appropriate.

She also notes in a blog comment:

Actually, removing an entry in recent tasks will kill any background processes that exist for the process. It won’t directly causes services to stop, however there is an API for them to find out the task was removed to decide if they want this to mean they should stop. This is so that removing say the recent task of an e-mail app won’t cause it to stop checking for e-mail.

If you really want to completely stop an app, you can long press on recent tasks to go to app info, and hit force stop there. Force stop is a complete kill of the app - all processes are killed, all services stopped, all notifications removed, all alarms removed, etc. The app is not allowed to launch again until explicitly requested.

So, it looks like the summary is that swiping an app out of the list will first kill all background processes for the app, then use

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é a rýchle pravidlo o tom, čo sa stane s touto aplikáciou.

Máte niečo doplniť vysvetlenie? Zvuk vypnúť v komentároch. Chcete si prečítať viac odpovedí od iných používateľov technológie Stack Exchange? Pozrite sa na celý diskusný príspevok tu.

Odporúča: