9Aug
Ko aplikacijo povlečete s seznama trenutno poteka v aplikaciji Android, kaj se natančno zgodi z aplikacijo in podatki? Nadaljujte, ko bomo raziskali.
Današnje vprašanje &S sejo odgovora prihaja uporabniško ime za Android Enthusiast, ki je razdeljena na Stack Exchange, skupinsko spletno mesto Q & A spletnih mest.
Vprašalnik
Bralnik čustev za bralce Android Eldarerathis je radoveden glede funkcij preklopa aplikacij, ki vam omogočajo, da povlečete svoj seznam aplikacij, ki se izvajajo, prek domačega gumba in jih nato potegnite v desno, verjetno jih zapremo:
Nedavni seznam aplikacij vIce Cream Sandwich je dodal možnost, da povlečete programe s seznama, s čimer jih trajno zavržete( in kolikor vem, da je to funkcija vanile, ne CM / po meri ROM-a).Dokumentacija in poudarki platforme ne zdi, da pokrivajo delovanje pod okriljem te funkcionalnosti, vendar me zanima, da vem, kaj sistem dejansko počne.
Nadaljeval sem z dodatkom k radovednosti, sem se odločil za hiter test: zagnal sem glasbo na namestitvi CM9, nato pa se je izognil. Nato sem preveril seznam nedavnih programov in videl, da je bil res( in v ustreznem stanju, ki temelji na sličici).Nato sem šel v Settings- & gt; Aplikacije in sila ustavil aplikacijo Glasba, vendar je bil še vedno na seznamu nedavnega, kar je pripeljalo do tega, da verjamem, da ni povezan z procesi, ki se zadržujejo v ozadju.
Sedaj, ko sem spoznal, da je bila glasba morda slaba izbira, sem tudi testiral aplikacijo USA Today. To je pokazalo v bistvu enako vedenje, in zdelo se je, kot da je bilo po "ustavitvi sile" prisiljeno ponovno zagnati( kar je smiselno), čeprav sličica na nedavnem seznamu aplikacij tega ni odražala( cached, mislim?).
Torej, kaj se dejansko zgodi na ravni OS, ko potegnete aplikacijo iz nedavnega seznama? Ali preprosto očistite podatke aplikacije iz RAM-ja in ga zbirajo, tako da uničijo shranjeno stanje?
Kaj se točno dogaja, ko aplikacijo povlečete s seznama?
Odgovori
, ki prispeva k prispevku Android Enthusiast Austin Mills ponuja nekaj vpogleda:
Swiping aplikacije s seznama nedavnih aplikacij so vanilija, in da, niso dobro dokumentirani. To je bila tema dostojnega razprave na različnih forumih za Android. .. soglasje se zdi najbolje opisano v nekaterih komentarjih: vedenje je podobno, vendar ni popolnoma enako kot zapiranje aplikacije - na splošno( za aplikacije, kine definirajte izrecnega ravnanja z gumbi za nazaj), to je isto, kot če v programu, ki ga izstopite, zadosti dovolj časa.
Povezava ima nekaj več podrobnosti o specifičnosti, vendar na splošno si lahko zamislite, da je odjavila aplikacijo.
, specifičen za aplikacijo Glasba, verjamem, da začne storitev, tako da se lahko funkcija samodejno( aplikacija Glasba / uporabniški vmesnik) zapre, storitev pa še naprej deluje v ozadju, tako da vaša glasba ne stopi nenadoma,naloga se je sprostila zaradi razlogov za upravljanje spomina. To je lahko vplivalo na to, kar si videl.
Potem, ko je sodeloval v krogu vprašanj in odgovorov, se je Eldarerathis vrnil z nekaj raziskavami, da bi zaokrožil odgovor:
Zdi se mi, da sem našel čarobne iskalne izraze, ki so privedli do nekaterih pojasnil od zaposlenih v Googlu. Natančneje sem našel nekaj različnih krajev, kjer Dianne Hackborn razlaga, kaj se zgodi, ko nekaj potegnete iz nedavnega seznama. Prvo je komentar o eni od njenih objav v Googlu +: posebej se zgodi, ko potegnete nedavno opravilo:
[W] hat:( 1) uniči ozadje ali prazne procese aplikacije( glejte tukaj, kaj to pomeni),in( 2) uporablja nov API, da sporoči katerikoli storitvi aplikacije o odstranjeni nalogi, tako da lahko naredi vse, za kar meni, da je ustrezna.
Prav tako ugotavlja v komentarju o blagu:
Pravzaprav bo odstranitev vnosa v zadnjih opravilih ubil vse ozadne procese, ki obstajajo za proces. Ne bo neposredno povzročil, da se storitve ustavijo, vendar je API, da ugotovijo, ali je bila naloga odstranjena, da bi se odločila, ali želijo, da to pomeni, da bi se morale ustaviti. To je tako, da odstranjevanje pomeni, da nedavna naloga aplikacije za e-pošto ne bo povzročila, da bi prenehala preverjati e-pošto.
Če res želite popolnoma ustaviti aplikacijo, lahko dalj časa pritisnete na zadnje naloge, da odprete informacije o aplikaciji, in tam stopite na silo. Prenehanje sila je popolna ubojnost aplikacije - vsi procesi so ubitih, vse storitve so ustavljene, vsa obvestila so odstranjena, vsi odstranjeni alarmi itd. Aplikaciji ni dovoljeno ponovno zagnati, dokler ni izrecno zahtevano.
Zdi se torej, da je povzetek, da je premikanje aplikacije s seznama najprej ubilo vse ozadne procese za aplikacijo, nato pa uporabite onTaskRemoved, da obvesti aplikacijo, da je bila naloga v ozadju odstranjena. Na tej točki izgleda, da gre za aplikacijo, da se odloči, kaj se zgodi, zato mislim, da tehnično ni trdno in hitro pravilo o tem, kaj se zgodi z aplikacijo preko te točke.
Ali želite dodati nekaj pojasnila? Zvok v komentarjih.Želite prebrati več odgovorov od drugih uporabniških članov stack Exchange? Oglejte si celotno temo za razpravo tukaj.