Vai, pavelkot lietotni ārpus savas pašreiz notiekošo lietotņu saraksta Android, kas precīzi notiek ar lietojumprogrammu un datiem? Lasiet tālāk, kā mēs izmeklējam.
Šodienas jautājumu un atbilžu sesija mums priecājas ar Android entuziastu - Stack Exchange dalību, kas ir kopiena, kuras pamatā ir Q & A tīmekļa vietnes.
Android entuziastu lasītājs Eldarerathis ir interesanti par lietotņu pārlūkošanas funkcionalitāti, kas ļauj pārlūkot jūsu veikto lietotņu sarakstu, izmantojot mājas pogu, un pēc tam velciet tos pa labi, iespējams, tos aizverot:
Jaunāko lietotņu sarakstā Ice Cream Sandwich tika pievienota iespēja no saraksta izvilkt lietotnes, tādējādi neattaisnojot tās (un, cik man zināms, tā ir vaniļas funkcija, nevis CM / pielāgota ROM). Dokumentācija un platformas izcelšanās neatspoguļo šīs funkcionalitātes trūkumus, taču es domāju zināt, ko sistēma patiešām dara.
Papildinot savu interesi, es nolēmu veikt ātru pārbaudi: es sāku mūziku CM9 instalēšanā, pēc tam atkāpās no tā. Tad es pārbaudīju neseno lietotņu sarakstu un redzēju, ka tas patiešām ir (un atbilstošā stāvoklī, pamatojoties uz sīktēlu). Tad es devos
Iestatījumi-> Lietojumprogrammas
un spēks pārtrauca lietotni Mūzika, taču tas joprojām tika iekļauts nesenajā sarakstā, un man lika domāt, ka tas nav saistīts ar procesiem, kas notiek fonā.Tagad, apzinoties, ka mūzika, iespējams, bija slikta izvēle, es arī testēju ar lietotni USA Today. Tas izrādījās pamatā tādā pašā uzvedībā, un šķita, ka pēc spēka pārtraukšanas tā bija spiesta atsākt spēli (kas ir jēga), lai gan pēdējo lietotņu saraksta sīktēls to neatspoguļoja (kešatmiņā es domāju?).
Tātad, kas faktiski notiek OS līmenī, ja velciet lietotni no neseno saraksta? Vai tas vienkārši attīra app datus no RAM un atkritumi savāc to, iznīcinot tā saglabāto stāvokli?
Kas precīzi notiek, pavelkot lietotni no saraksta?
Android entuziastu veidotājs Austin Mills piedāvā ieskatu:
No jaunāko lietotņu saraksta lietojamo programmu velkšana ir vaniļa, un jā, nav labi dokumentētas. Tas ir bijis cienīgs diskusiju temats par dažādiem Android forumiem ... visticamāk, vislabāk ir aprakstīts, ka konsenss dažos komentāros ir aprakstīts, ka uzvedība ir līdzīga, bet ne pilnīgi tāpat kā lietotnes slēgšana - vispār (lietotnēm, kas nenosakiet skaidru atpakaļ pogu apstrādi), tas ir tas pats, kas pietrūkst pietiekami daudz laika no programmas, kuru jūs izietat no tā.
Saite satur detalizētāku informāciju par specifiku, bet kopumā jūs to varat domāt kā pieteikuma atstāšanu.
Īpaši mūzikas lietotnei es uzskatu, ka tā sāk pakalpojumu, tāpēc, ka pats uzdevums (mūzikas lietotne / lietotāja saskarne) var tikt aizvērts, pakalpojums turpina darboties fonā, lai jūsu mūzika netiktu pietuvināta tikai tāpēc, ka uzdevums tika iztīrīti atmiņas pārvaldības dēļ. Tas var ietekmēt to, ko jūs redzējāt.
Tad, piedaloties dzīvības jautājumu un atbilžu lokā, Eldarerathis atgriezās ar kādu savu pētījumu, lai noapaļotu atbildi:
Man šķiet, ka ir atraduši maģiskos meklēšanas vienumus, kas izraisīja dažus Google darbinieku paskaidrojumus. Konkrēti, es atradu pāris dažādas vietas, kur Dianne Hackborn paskaidro, kas notiek, kad pavelk kaut ko no neseno saraksta. Pirmais ir komentārs par vienu no savām Google+ ziņām:
[W] cepure īpaši notiek, kad jūs velciet prom nesen uzdevums ir tas: (1) nogalina jebkuru fona vai tukšus procesus pieteikumu (skatiet šeit, ko tas nozīmē), un (2) izmanto jauno API, lai pastāstītu par visiem pakalpojumiem pieteikums par uzdevumu tiek noņemts, lai tas varētu darīt visu, kas domāts, ir piemērots.
Viņa piebilst arī emuāra komentārā:
Patiesībā ieraksta noņemšana nesenos uzdevumos iznīcinās visus procesā esošos fona procesus. Tas tieši nenozīmē, ka pakalpojumi tiek apturēti, taču tiem ir API, lai noskaidrotu, kurš uzdevums tika noņemts, lai izlemtu, vai viņi to vēlas, tas nozīmē, ka viņiem vajadzētu apstāties. Tas ir tā, ka, noņemot sakot neseno uzdevumu e-pasta app neizraisa tā pārtraukt pārbaudīt e-pastu.
Ja jūs patiešām vēlaties pilnībā apturēt lietotni, varat ilgstoši nospiest uz neseno uzdevumu, lai dotos uz lietotnes informāciju, un piespiediet spēku, lai apturētu to. Force stop ir pilnīgs lietotnes noklusējums - visi procesi tiek nogalināti, visi pakalpojumi ir pārtraukti, visi paziņojumi ir noņemti, visi brīdinājumi ir izņemti utt. Lietojumam nav atļauts atkārtoti palaist, kamēr nav skaidri pieprasīts.
Tādējādi izskatās, ka kopsavilkums ir tāds, ka lietojumprogrammas notīrīšana no saraksta vispirms noņems visus lietotnes fona procesus, pēc tam izmantojiet
onTaskRemoved
paziņot lietotnei, ka fona uzdevums ir noņemts. Tajā brīdī izskatās, ka lietotnei ir jāizlemj, kas notiek, tāpēc es domāju, ka tas ir tehniskinav grūti un ātri noteikumi par to, kas notiek ar lietotni ārpus šī punkta.
Vai kaut ko pievienot paskaidrojumam? Skatieties komentāros. Vēlaties lasīt citas atbildes no citiem tehnoloģiju savvy Stack Exchange lietotājiem? Šeit skatiet pilnu diskusiju pavedienu.