Wpis z mikrobloga

Ok mireczki #programowanie #java #androidev

Ok zastanawiam sie czy to jest dobra koncepcja:

W przypadku klikniecia "otwórz dany produkt" wykonywany jest AsyncTask którego zadaniem jest:

Wykonanie requesta (prosty POST), następnie Entity brany jest mielony do Streama.

Stream ten jest przekazywany do klasy której zadaniem jest parsowanie Streama zawierającego JSON'a za pomocą JsonPrasera (stream) do klas mapujących jsona do obiektów (wszystkie full serializable).

Podczas tego wykonywane są eventy jak: "Sparsowano informacje kontaktowe, sparsowano informacje o zdjęciach, dodano do tabeli z wersjami produktu nową wersje." zawierające referencje do tych obiektów którego eventy dotyczą.

Każdy event jest odkładany na kolejke.

W między czasie Activity przypina nowy fragment. Gdy fragment wreszcie może manipulować swoim ui wykonywany jest drugi AsyncTask którego zadaniem w background jest pobieranie eventów z koleiki i już w UITheard zamiana na elementy inferejsu (ustawienie tekstu, dodanie do listy nowego elementu ect).

Dodatkowo klasa która parsuje stream na obiekty dzieli interfejs z klasą która jest w stanie wygenerować eventy więc po jednokrotnym parsowaniu można odbudować ui generując eventy na podstawie gotowych sparsowanych obiektów.

Przekombinowałem? Zaznaczam że satre podejscie: Pobierz -> Sparsuj (JSONObject(string)) -> Zmapuj ProductData(json) -> Zbuduj UI productview.update(productdata) jest o tyle problematyczne że powoduje laga..

Gdyż odbywało się to tak: załadowanie fragmentu (XXms), http request(150ms), parsowanie (300), mapowanie (15ms), budowanie UI (długooo).

A w nowym podejsciu elementy ui będą budowane równolegle do parsowania jsona. Oczekiwanie na odpowiedz serwera nie będzie powodowało lagu gdyż będzie ukryte w czasie podpinania fragmentu.

Jest jakieś łatwiejsze rozwiązanie? ( ͡ ͜ʖ ͡)
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@MattePRL: Chowanie spinnera i podmianka ui powoduje brzydką ścinkę. Albo spinner się zarzyna albo ui nie odpowiada po schowaniu spinnera. Telefon testowy to typowy: janusz-droid~2.3

@Dzakus: Kod zostawiłem na kompie w firmie. :/
  • Odpowiedz