Отправка намерений от получателя к услуге с задержкой

1

У меня есть приемник для намерения BOOT_COMPLETED, и он запустит службу, вызвав startService с намерением и процессами службы, которые намерены использовать функцию onStartCommand, создав поток, который выполняет HTTP-сообщение на сервер.

При включении питания иногда требуется от 3 до 5 секунд, чтобы получить активное соединение с данными на телефоне, когда это произойдет. Служба не выполняет HTTP-сообщение, поскольку соединение с данными отсутствует. Возможно ли, чтобы Получатель отправил намерение Службе с использованием startService с задержкой.? так что, когда onStartCommand of Service называется соединением данных, готов к публикации данных.

Теги:

2 ответа

0

Прежде чем выполнять какую-либо передачу данных, создайте цикл, который будет опросить Android TelephonyManager. getDataState() с экспоненциальным отклонением, чтобы не использовать слишком много CPU или не утилизировать пользовательскую батарею. Продолжайте пытаться, пока не получите флаг DATA_CONNECTED, или пока не получите какой-то тайм-аут, чтобы остановить попытку.

0

Не можете ли вы использовать asynctask для выполнения HTTP-запроса, а затем, возможно, поймать исключение в asynctask для проверки исключения тайм-аута?

Если истечет время ожидания asynctask, то изящно возвратитесь и запустите свою службу для создания новой асинхронной ссылки, пока не получите соединение?

  • 0
    Скорее всего, HTTP-сообщение не будет работать при включении питания. Желательно отложить публикацию, а не перехватывать исключение
  • 0
    Исправление устаревшего кода, пока не могу использовать asyctask.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню