Я розробляю додаток, у якого повторюється завдання надсилати присутність на виділений сервер, доки додаток стоїть на передньому плані.
Під час пошуку в Інтернеті я побачив декілька різних підходів і хотів дізнатися, який найкращий спосіб зробити це.
Який найкращий спосіб запланувати виклик на сервері?
Я бачив такі варіанти:
Таймер .
Сервіс .
Трансляція ресивера з AlarmManager .
Яка твоя думка?
РЕДАКТУВАННЯ:
Причина мені потрібна в додатку на основі чату, який надсилає всі дії користувача на віддалений сервер.
тобто користувач набирає повідомлення, користувач читає повідомлення, користувач перебуває в мережі, користувач перебуває в автономному режимі і т.д.
Це означає, що раз на інтервал мені потрібно надсилати серверу те, що я роблю, оскільки я відкриваю кімнату чату з іншими людьми, вони повинні знати, що я роблю.
Подібно до механізму зворотного зв’язку повідомлення WhatsApp:
РЕДАКТИКА №2:
Повторювані завдання тепер слід планувати майже завжди через JobScheduler
API (або FirebaseJobDispatcher
для нижчих API), щоб уникнути проблем із розряджанням акумулятора, як це можна прочитати в розділі « Життя» в навчанні Android
EDIT № 3:
FirebaseJobDispatcher був застарілим і замінений Workmanager , який також містить функції JobScheduler.