Tema: Re: Android ir klava
Autorius: padugne
Data: 2012-03-22 21:02:52
On Thu, 22 Mar 2012 18:21:08 +0200, Rimas wrote:

>> Coa tau ne windowsai, procesai meturi amzinai gyvu loopu. Paspaudei
>> "back" ir viskas, procesas guli sustinges "saldytuve" kaip mamutas
>> antarktidoje ir valgyt nepraso.
> 
> Kiek kartų reikia spaust back androido motininėj naršyklėj, jei esi
> nuėjęs iš ten į ten, o iš ten dar į ten ir t.t. Absurdas kažkoks. Jei

Kame tas absurdas?

> spausi home, tai ir kabos procesas. Ir tikrai ne kaip šaldytas mamutas.
> Ar klystu?

Klysti. Normaliu atveju niekas nekabos.

Zhek, pabandysiu visai rimtai paaiskinti. 

Visu pirma, android applikacijos nera kazkokie monolitiniai procesai 
kurie gali kazkur "kaboti", t.y. nera is fortkiu zinomo "main()" i kuri 
uzeini ir is kurio kol gyvas niekada nebeiseini.

Androido appsai realybeje yra taip vadinamu "activities" rinkinukai. 
Kiekviena "activity" mazdaug atitinka viena ekrana ir gyva tik tol, kol 
matoma. Ir tai nera visa laika gyva, o tik tais trumpais momentais kai 
androidas is jos ko nors nori. Tipo "juzeris paspaude ant ekrano, 
koordinates 345,221, daryk ka nors". Darymui turi labai trumpa laika, ir 
jei per ji nesutvarkai, tai gausi "not responding" dialoga su pasiulymu 
nukillinti ar palaukt.

Paspausi ant home, activity praras fokusa (t.y. prapuls is ekrano) ir 
daugiau is androido nebegaus jokiu eventu. Ir psio, activity patampa 
jokiu resursu nebekainuojantis lavonelis saldytuve. Jei androidui staiga 
kam nors prireikia atminties, tai netgi be ceremoniju isskrenda is 
atminties.

Activity teoriskai gali paleist backgroundinius threadus. Bet jie turi 
konkrecia paskirti ir niekas ju nelaidzioja "seip sau" be konkrecios 
uzduoties. T.y. normaliai jei reikia daryt ka nors 'ilgai trunkancio', 
tai toks threadas paleidziamas, padaro savo uzduoti ir pasibaigia. Jei 
toks threadas visdelto niekaip nepasibaigia, tai jau labai rimtas bugas, 
t.y. toki apsa reikia arba remontuot arba mest nx.

-- 
kthxbai.