Projektuję aplikację, która ma cykliczne zadanie wysyłania informacji o obecności do serwera dedykowanego, o ile aplikacja jest na pierwszym planie.
W moich poszukiwaniach w Internecie widziałem kilka różnych podejść i chciałem wiedzieć, jaki jest najlepszy sposób zrobienia tego.
Jaki jest najlepszy sposób zaplanowania połączenia z serwerem?
Opcje, które zobaczyłem, to:
Timer .
Serwis .
BroadcastReciever z AlarmManager .
Jakie jest Twoje zdanie?
EDYCJA:
Powodem, dla którego potrzebuję tego jest aplikacja oparta na czacie, która wysyła wszystkie działania użytkownika na zdalny serwer.
tj. użytkownik pisze wiadomość, użytkownik czyta wiadomość, użytkownik jest online, użytkownik jest offline itp.
Oznacza to, że raz na interwał muszę wysyłać serwerowi to, co robię, ponieważ otwieram pokój rozmów z innymi ludźmi, oni muszą wiedzieć, co robię.
Podobnie jak w przypadku mechanizmu informacji zwrotnej o wiadomościach WhatsApp:
EDYCJA NR 2:
Powtarzające się zadania powinny być teraz planowane prawie zawsze za pośrednictwem JobScheduler
interfejsu API (lub FirebaseJobDispatcher
dla niższych interfejsów API), aby zapobiec problemom z rozładowywaniem baterii, co można przeczytać w sekcji dotyczącej najważniejszych elementów szkolenia na temat Androida
EDYCJA NR 3:
FirebaseJobDispatcher został wycofany i zastąpiony przez Workmanager , który zawiera również funkcje JobScheduler.