niedziela, sierpnia 08, 2010

Androidowe boje... ale nie takie morskie ;-)

Dalej walczę z Bloggeroidem i mam problem.
Albo ja czegoś w platformie jaką jest Android nie rozumiem, albo jest w niej "pewne" niedopatrzenie.
Chciałbym pewną czynność, dokładniej pobranie postów z bloga, robić "z tyłu" aktywności. Gdy pierwszy raz wyświetla się nam aktywność powinien pojawić się "progress", a później lista postów z bloga. Ponieważ chcemy uniknąć pretensji Androida, że blokujemy na zbyt długo wątek UI to wszystko dzieje się w oddzielnym wątku, który robi swoje i w końcu zamyka progress i wyświetla pobraną listę postów....... ale, ale jak ktoś nam złośliwie zmieni orientację ekranu to aktywność ginie, ale wątek sobie leci nadal, i jak już skończy to próbuje zamknąć okienko, którego nie ma, a to powoduje pretensje Androida.... OK, tu możemy założyć zabezpieczenie, ale i tak dane się zgubią. To też by można było przeżyć, ale jeżeli ktoś bez opamiętania będzie latał telefonem i ciągle zmieniał orientację to zima, w końcu poleci OutOfMemmoryError bo po prostu te wątki ciągnące, plus pobrane dane i inne podobne rzeczy mogą przekroczyć ograniczenia na stertę/zrobić coś równie głupiego.
To czego potrzebuję to możliwość odpalenia z aktywności czegoś w oddzielnym wątku co zrobi swoje i odda sterowanie do aktywności nawet jeżeli ta aktywność zginie, ale wróci "na wierzch" jakaś inna tego typu.
Jedyne co przychodzi mi do głowy to coś takiego, że w aktywności będę miał statyczne pole w którym będę trzymał referencję do oddzielnej klasy, w której będzie szalał wątek i na końcu wywoła metodę z przekazanego mu obiektu, a aktywność przy tworzeniu będzie od razu wołała na tej trzymanej statycznie klasie metodę, w której zarejestruje się na wołania z tego obiektu.......
Ale to takie fuj.
Myślałem o serwisie i bindowaniu do niego, ale jakoś nie czuję bluesa.
A to się musi dać jakoś rozsądnie zrobić.

Z innych rzeczy :-) Google ostro pracuje nad Google AppInventor for Android. Naprawili TinyDB i obsługę sensorów :-)
Dzięki temu moja aplikacja do obsługi sensora już działa :-)
Wg. jej wskazań przyciąganie ziemskie u mnie w domu to 9.5 m/s2, wg. wzorów empirycznych powinno to być właśnie 9.81 m/s2.
Chętnie poznam wyniki innych osób :-) Tutaj link do aplikacji, w celu wykonania pomiaru należy telefon położyć na płaskiej powierzchni i sprawdzić wyniki dla ZAccel.
Tak wygląda źródło aplikacji "sensorowej" :-)



Plan Lekcji też jest już prostszy :-)


Podobne postybeta
I jak "po bożemu" zrobić updatowanie widoku na podstawie danych z sieci w Androidzie?
Modale nie takie dobre dla Androida ;-)
Raport z boju z Androidem ;-)
O tym w czym iOS jest lepszy od Androida
Sprawdzanie zdjęcia ;-)