ArtemEfremov
@ArtemEfremov

Как сделать HTTP-LongPolling через JetPack Workers?

Бьюсь с этой проблемой уже долгое время. Исход таков: на китайских телефонах в фоновом режиме всё отваливается или же начинается дублирование воркеров (что редко).

Проводя некоторое тестирование в воркерах без работы с сетью (например каждую минуту отправлять уведомления пользователю в фоновом режиме) — всё работает замечательно. Как начинаю работать с сетью в воркерах — всё, там завал. Неизвестно, как так получается.

public class LongPoll extends Worker {
   public LongPoll(Context c, WorkerParameters p) {
    super(c, p);
   }
   public Result doWork() {
     try {
    // здесь выполняется ожидающий запрос
     } catch (Exception e) {}
   // после выполнения HTTP-запроса запускаю повторную задачу
    return Result.success();
   }
  }


Я пробовал и уникальные задачи и задачи с тэгами, ну не работает оно в фоновом режиме нормально. Firebase лучше не предлагать как замену, уже работали с ним — печальный опыт. Да и посредников иметь не хочется. Android позиционирует Worker's как хорошую альтернативу фоновым и устаревшим сервисам. Ну пока ничего не получается. Помогите, пожалуйста.
  • Вопрос задан
  • 49 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы