Android: okresowo wysyłaj dane lokalizacji w tle (co 30 sekund) i poproś serwer o nowe dane
Scenariusz:
Opublikuj na serwerze, aby uzyskać nowe dane w tle co 30 sekund przez długi okres czasu, tj. 12 godzin. Wraz z tym należy przesłać dane o lokalizacji.
Aktualne wdrożenie;
Klasa usług;
Lokalizator lokalizacji z interwałem 30 sekund, który ustawia wartości długości i szerokości geograficznej na dwie zmienne lokalneMenedżer alarmów uruchamia oczekiwanie co 30 sekund do odbiornika transmisji.Odbiornik rozgłoszeniowy uruchamia IntentService ze zmiennymi lokalizacji w dodatkach.Lokalizacja postów IntentService http i prosi o nowe dane z serwera.IntentService wysyła odpowiedź serwera z powrotem do głównej klasy usług poprzez odbiornik transmisji.
Klasa usług starts_sticky, aby zapewnić restart systemu operacyjnego.Próbowałem kilku różnych odmian;
Próbowałem użyć Handler i uruchomić z mechanizmem synchronizacji do wysyłania do serwera, jednak czas postDelay poszedł od 2 minut do 7 minut, gdy urządzenie śpi.
Próbowano także wypalić IntentService bezpośrednio z menedżera alarmów, ale nie można było zmienić dodatków PendingIntent z najbardziej aktualnymi zmiennymi lokalizacji.
Pytania;
Czy obecna implementacja jest do zrobienia?
Czy obniżenie trasy Google GCM byłoby o wiele bardziej korzystne?
Jak można energicznie przetestować klasę usług, szczególnie w odniesieniu do odzyskiwania po zabiciu systemu operacyjnego?
Z góry dziękuję.