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ę.

questionAnswers(1)

yourAnswerToTheQuestion