#android
#Android
Вопрос:
У меня есть приложение, в котором первое, что оно делает, это подключается по Wi-Fi и отправляет http-запрос, чтобы получить приветственное сообщение. Приложение настроено на запуск при включении питания. Итак, я хочу сделать это изменение. Я знаю, как проверить, установлен ли еще Wi-Fi, но если я обнаружу, что его еще нет. Как мне отложить и повторить попытку подключения? Не уверен, как правильно ввести задержку. Также есть ли какое-либо другое сообщение, помимо включения питания, которое я должен перехватывать, которое возникает после того, как все Wi-Fi установлено? Или какая-то задержка при включении, которую я мог бы использовать? Спасибо
Ответ №1:
Просто проверьте код возврата или исключение из вашего http-запроса. Если это не удается, подождите некоторое разумное количество времени, а затем повторите попытку.
Вы не упомянули, какую ОС вы используете, кажется, Windows. Если это так, существуют API для проверки состояния сетевого интерфейса, но не используйте это. Это менее надежно, чем просто проверка результата реального рабочего запроса.
Ответ №2:
Вы не указываете, на какое широковещательное сообщение вы отвечаете, но вы должны прослушивать BOOT_COMPLETED .
Если Wi-Fi недоступен, просто используйте AlarmManager, чтобы через некоторое время запустить свой сервис / приложение и повторить попытку связи. Вы также могли бы использовать CountDownTimer, но это может привести к блокировке, поэтому может оказаться неуместным.
Ответ №3:
- Проверьте состояние WiFiState при включении питания
- Если он выключен, зарегистрируйте BroadcastReceiver для android.net.wifi.Намерение WIFI_STATE_CHANGED.
Когда Wi-Fi включен, будет вызван onReceive вашего BroadcastReceiver. Для получения дополнительной информации ознакомьтесь с документацией WifiManager.