9Aug
Kui liigute oma rakenduse välja oma praeguste rakenduste loendis oleva Android-i kaudu, mis täpselt juhtub rakenduse ja andmetega? Loe edasi, kui uurime.
tänapäeva küsimus &Vastuste seanss tuleb meile viisakalt Android Enthusiast-st Stack Exchange, kogukonnapõhise Q & A veebisaitide rühmituse jagunemisest.
Küsimus
Android Entuusiaja lugeja Eldarerathis on huvitav app-swipe funktsiooni üle, mis võimaldab teil käivitada oma rakenduste loendi kodunupuga ja seejärel pühkida neid paremale, eeldatavasti sulgemiseks:
Hiljutiste rakenduste loendIce Cream Sandwich lisas võimaluse libiseda rakendused loendist välja, jättes need jälle püsima( ja niipalju kui tean, et see on vanilli funktsioon, mitte CM / kohandatud ROM-i).Dokumendi ja platvormi esiletoomine ei näi olevat selle funktsiooni ala-kapuutsiga seotud, kuid mul on uudishimulik teada, mida süsteem tegelikult teeb.
Lisaks mu uudishimu lisamisele otsustasin teha kiire katse: käivitasin Muusika CM9-i installimisel, seejärel eemaldasin selle. Seejärel kontrollisin hiljutist rakenduste loendit ja nägin, et see oli tõepoolest olemas( ja pisipildil põhinev õige olek).Seejärel läksin sisse Seadistused & gt; Rakendused ja sundisin muusikarakendust peatama, kuid see oli ikka veel hiljutises loendis loetletud, mis viis mulle arvata, et ta pole seotud taustale jäävate protsessidega.
Mõistes nüüd, et Muusika võis olla halb valik, katsetasin ma ka rakendusega USA Today. See näitas põhimõtteliselt samasugust käitumist, ja tundus, et see oli pärast jõuületamise lõppu( mis on mõttekas) sunnitud "taaskäivitama", kuigi viimaste rakenduste loendi pisipilt ei peegeldanud seda( puhverdatud, ma arvan?).
Niisiis, mis juhtub OS-i tasandil, kui hõivasite rakenduse viimasest loendist välja? Kas see lihtsalt puhastab rakenduse andmed RAMist välja ja prügi kogub, hävitades selle salvestatud oleku?
Mis täpselt läheb, kui lülitate rakenduse nimekirjast välja?
Answers
Android Enthusiast kaasautor Austin Mills pakub mõningast ülevaadet: hiljutiste rakenduste loendis olevad rakendused
Swiping on vanillid ja jah, ei ole hästi dokumenteeritud. See on olnud mõne Android-foorumi korraliku arutelu teemaks. .. konsensust tundub kõige paremini kirjeldatud mõnedes kommentaarides, et käitumine on sarnane, kuid mitte täpselt sama mis rakenduse sulgemine - üldiselt( rakenduste puhul, misÄrge määrake selgesõnaliselt tagasikäikude käitlemist), on see sama, mis lööb tagasi piisavalt aega rakenduses, mille sellest välja ei õnnestu.
Linkil on üksikasjalikum teave eripärade kohta, kuid üldiselt võite seda mõista kui rakenduse mahajätmist.
Muusikarakendusele spetsiifiline, ma usun, et see käivitab teenuse, nii et kui ülesanne ise( muusikaprogramm / kasutajaliides) võib olla suletud, jätkab teenus taustal töötamist, nii et muusika ei jääks äkitselt lihtsalt sellepärast, etülesanne on mälukaardiga seotud põhjustel välja jäetud. See võib mõjutada seda, mida nägite.
Seejärel osales Eldarerathis elus küsimuste ja vastuste rühmas mõne tema enda uurimisega, et vastus ümardada: tundub, et
leidis maagilisi otsingutermineid, mis viisid Google'i töötajatele mõned selgitused. Täpsemalt leidsin paar erinevatest kohtadest, kus Dianne Hackborn selgitab, mis juhtub, kui pühkida midagi viimasest loendist välja. Esimene on kommentaar ühele tema Google+ postitusele:
[W] mütsi juhtub spetsiaalselt siis, kui hiljutise ülesande pühkida:( 1) tapab rakenduse mis tahes tausta või tühjad protsessid( vt selle kohta, mida see tähendab);ja( 2) kasutab uut API-d, et mõne rakenduse teenuseid rääkida eemaldatava ülesande kohta, nii et ta suudab teha kõik, mis tema arvates sobib.
Ta märgib ka blogi kommentaaris:
Tegelikult eemaldab viimaste toimingute kanne kõik protsessi jaoks vajalikud taustprotsessid. See ei põhjusta otseselt teenuste peatamist, kuid nende jaoks on olemas API, mis selgitab, et ülesanne eemaldati, et otsustada, kas nad tahavad, et see tähendab, et nad peaksid lõpetama. See on nii, et eemaldades öeldes, et e-posti rakenduse viimane ülesanne ei põhjusta seda, et see lõpetaks e-posti kontrollimise.
Kui soovite tõesti rakendust täielikult peatada, võite pikalt vajutada hiljutistele ülesannetele, et minna rakenduse info juurde ja jõudma jõu seiskamiseni. Jõupiirang on rakenduse täielik tapmine - kõik protsessid tapetakse, kõik teenused peatuvad, kõik märguanded eemaldatakse, kõik häired eemaldatakse jne. Rakendusel pole lubatud uuesti käivituda, kuni on selgesõnaliselt nõutud.
Seega tundub kokkuvõte, et rakenduse libistamine loendist katkestab kõigepealt kõik rakenduse taustprotsessid, seejärel kasutage rakendusesTaskRemoved, et teavitada rakendust, et taustaülesanne on eemaldatud. Sel hetkel tundub, et rakendus otsustab, mis juhtub, nii et arvan, et tehniliselt ei ole -l raske ja kiire reegel selle kohta, mis juhtub rakendusega sellel teemal.
Kas teil on seletamiseks midagi lisada? Helistage kommentaarides. Kas soovite lugeda rohkem vastuseid teistelt tech-savvy Stack Exchange'i kasutajatelt? Tutvu täieliku arutelu teemaga siit.