Mam działającą usługę Android, ale chcę uruchomić określoną metodę serwisową co X godzin, aby zaktualizować dane. Jaki jest najlepszy sposób na zrobienie tego bez marnowania zasobów Androida?Jak okresowo uruchomić metodę serwisową?
Odpowiedz
Zajrzyj do AlarmManager.
Wyjaśnienie: ponieważ chcesz, aby metoda usługi była uruchamiana w odstępach godzinnych, nie chcesz, aby proces serwisowy działał przez cały ten czas. Korzystając z AlarmManager
, system operacyjny może zabić usługę, gdy nie jest potrzebna, a następnie wywołać ją, aby wykonać tę metodę, gdy nadejdzie czas.
Co, jeśli interwały są kwestią minut? Czy warto używać aplikacji AlarmManager? Lub lepiej sprawić, by wątek wywoływany przez usługę spał przez kilka minut? – Leeeeeeelo
@Leeeeeeelo - dla zwiększenia wydajności, w małych odstępach czasu (mniej niż 10-15 minut), nie powinieneś iść z AlarmManager. Istnieją dyskusje na temat tego gdzie indziej na SO, np. http://stackoverflow.com/questions/11434056/how-to-run-a-method-every-x-seconds –
Dlaczego po prostu nie uruchomisz usługi raz, a następnie dodasz zegar lub sprawisz, że wątek będzie spać przez odpowiedni czas? – CodeKrieger
Wymagałoby to, aby proces serwisowy był wykonywany * zawsze *. Godzinami. To nie jest efektywne zasoby. –
Dzięki! Uczę się, przeszukuję, jak dodać timer. Jakieś sugestie? – Ferran