Постоянная проверка интернета

207
04 мая 2017, 13:01

Как в приложениях делают проверку интернета? Т.е. если нету или пропадает интернет в ходе работы приложения, то нужно вывести сообщение. Как это реализовать?

Answer 1

В большинстве случаев абсолютно бессмысленно проверять наличие/отсутствие интернета, так как во время проверки он может быть, а во время сетевого взаимодействия интернет может отвалиться.

Как правило, в подобных ситуациях просто отлавливают экзэпшены, которые могут возникнуть во время работы с интернетом, и от них уже крутятся.

Но если Вы очень хотите проверить состояние сетевого подключения, то можете просто сделать условный пинг до двух-трех серверов с высоким аптаймом.

Анализ системных броадкастов (без дополнительных манипуляций) в общем случае не поможет, так как устройство может находиться в какой-либо Wi-Fi-сети, однако из самой сети интернет может быть недоступен.

Answer 2

Рекомендую не множить костыли и читать официальную документацию определение наличия подключения к интернету

Таким образом sdk предоставляет нам класс ConnectivityManager который:

  • Осуществляет мониторинг сетевых подключений (Wi-Fi, GPRS, UMTS и т. Д.)
  • Отправляет широковещательные сообщения при изменении подключения к сети
  • Позволяет переподключаться в другую сеть, когда потеряна связь с текущей сетью
  • Предоставляет API, который позволяет приложениям запрашивать состояние доступных сетей.
  • Предоставляет API, который позволяет приложениям запрашивать и выбирать сети для их отправки и получения трафика.

В простейшем сценарии узнать, доступна ли сеть можно вот так:

ConnectivityManager cm =(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
 NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
 boolean isConnected = activeNetwork.isConnectedOrConnecting();
READ ALSO
displaying a 3 random numbers with delay on the textview when clicking a button in android [требует правки]

displaying a 3 random numbers with delay on the textview when clicking a button in android [требует правки]

I want to make an applicationWhen I click on the Button, I want to display three numbers with a delay on the Textview

230
Offline режим в firebase

Offline режим в firebase

Дано: Приложение работающее с firebase

278
Как вывести динамическую таблицу из БД?

Как вывести динамическую таблицу из БД?

Интересует как вывести динамическую таблицу из БД на GUI - формуИспользовал интерфейс "AbstractTableModel"

349
JsonMappingException: Multiple back-reference properties with name 'defaultReference'

JsonMappingException: Multiple back-reference properties with name 'defaultReference'

Подскажите как можно передать json с фронта в spring MVC контроллер: класс:

510