Hirdetés

Új hozzászólás Aktív témák

  • Karma
    félisten

    Sziasztok,

    Aránylag új vagyok Android fejlesztésben, ezért tanácsot szeretnék kérni a következőben:
    Adott egy szerver, melyet bizonyos okokból csak pollozni tudok REST-en. Ezt elég gyakran meg kell csinálnom (kb. 1-2 másodpercenként) és az onnan jövő json-t feldolgozva update-elnem kell a UI-t: egy activity-ben is és akár a notification bar-ban megjelenő szöveget is (tehát nem biztos, hogy az activity előtérben lesz). Egy-egy ilyen művelet nem időigényes. Ennek az egésznek elég akkor megtörténnie, amikor maga az app fut az eszközön (tehát nem egy olyan service kell, ami mindig minden körülmények között fut).

    Nézegettem megoldásokat, de nem tudom melyik lenne a legjobb erre a feladatra. Talán egy IntentService-t hívogatva bizonyos időközönként lenne a legjobb megoldás, melynek eredményével megoldható a UI manipulálása is.
    Van jobb ötletetek erre?
    Köszi

    Mindenekelőtt rendet kell tenned a saját és a megrendelőd fejében. Mit jelent szerinted az, hogy az alkalmazás fut, de nincs előtérben? Miért és meddig kéne ilyen állapotban maradnia az alkalmazásnak?

    Egyébként ha ez egy konzumer alkalmazás (tehát nem belső használatra készül, olyan környezetben ahol fix az áramellátás és az internet), egy ilyen akkuzabáló sűrű poll megoldás csak egy csillagot majd azonnal törlést, esetleg egy goromba hangulatú HVG cikket ér. Megfontolandó lenne rakni valamit a REST interfész elé, ami előtérben futó alkalmazásnál websocketen (vagy pèldául Pusheren) keresztül realtime öntené a kliensekbe az adatokat, háttérbe pedig a GCM-nek delegálná ezt. Persze minden esetben egyértelművé téve a felhasználónak, hogy tud kiszállni.

    Az eredeti kérdésre visszatérve, egy started service lenne szerintem a megfelelő hely, ami ordered broadcastot küld, amikor új adat van. Ha van élő activity, akkor úgy csináld hogy ő kapja meg először, frissítve a UI-t, ha nincs, akkor meg alacsony prioritással a notif. frissítés fusson le.

Új hozzászólás Aktív témák