Я нашел много тем, как проверить доступ в Интернет. Но я не могу понять, как сделать это динамически. Например, я отправляю запрос (он будет работать в другом потоке), и устройство теряет интернет-соединение. Как я могу отменить свой запрос на это мероприятие?Как проверить доступ в Интернет в режиме реального времени?
1
A
ответ
1
Вот что-то, что я приготовил раньше; может быть, это поможет:
public class NetworkStateMonitor extends BroadcastReceiver {
public interface Listener {
void onNetworkStateChange(boolean up);
}
Context mContext;
boolean mIsUp;
public
NetworkStateMonitor(Context context) {
mContext = context;
//mListener = (Listener)context;
IntentFilter intentFilter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
context.registerReceiver(this, intentFilter);
mIsUp = isUp();
}
public void
unregister() { // call this when finished with it, and no later than onStop(): callback will crash if app has been destroyed
mContext.unregisterReceiver(this);
}
public boolean
isUp() { // can be called at any time
ConnectivityManager connectivityManager = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo!=null && activeNetworkInfo.isConnectedOrConnecting();
}
@Override public void
onReceive(Context context, Intent intent) { // registerReceiver callback, passed to mListener
boolean upNow = isUp();
if (upNow == mIsUp) return; // no change
mIsUp = upNow;
((Listener)mContext).onNetworkStateChange(mIsUp);
}
}
+0
Спасибо! Это лучшее решение для меня! –
0
вы можете использовать менеджер подключения
ConnectivityManager cm =
(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork != null &&
activeNetwork.isConnectedOrConnecting();
1
это мое предположить, этот метод вызывается в функции, чтобы получить знают, что Интернет доступны или нет
private boolean isNetworkConnected() {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
return cm.getActiveNetworkInfo() != null;
}
в ваши проявления
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
или вы можете поместить метод в родительскую активность или фрагмент (условный).
Смежные вопросы
- 1. Программирование в режиме реального времени
- 2. в режиме ввода в режиме реального времени в режиме реального времени?
- 3. Как проверить доступ в Интернет?
- 4. Запись в режиме реального времени
- 5. В режиме реального времени управление
- 6. Изменения в режиме реального времени
- 7. Как проверить задний стек Android APP в режиме реального времени?
- 8. Как я могу проверить 20000 пользователей в режиме реального времени?
- 9. Как работает подписка в режиме реального времени в режиме реального времени
- 10. Параллелизм в режиме реального времени
- 11. Видеозахват в режиме реального времени?
- 12. Игра в режиме реального времени
- 13. Анализ в режиме реального времени
- 14. Звонок в режиме реального времени()?
- 15. Сканирование в режиме реального времени
- 16. Игра в режиме реального времени
- 17. node.js в режиме реального времени
- 18. проверка доступности сети в режиме реального времени
- 19. жить в режиме реального времени, используя Emacs?
- 20. Взаимодействие с пользователем в режиме реального времени
- 21. Как обновить RecyclerView в режиме реального времени?
- 22. Как работает браузер в режиме реального времени?
- 23. Как сделать страницу в режиме реального времени
- 24. Есть ли способ проверить пакеты в режиме реального времени?
- 25. Тестирование многопользовательской игры в режиме реального времени в режиме реального времени с одним физическим устройством
- 26. Как проверить доступ в Интернет в Android
- 27. Javascript в режиме реального времени в режиме реального времени и обработка его в django backend
- 28. Двухфазное построение в режиме реального времени
- 29. Уведомление в режиме реального времени в Silverlight
- 30. в режиме реального времени в Python
Вы можете использовать фоновое обслуживание для постоянного мониторинга вашего интернет-соединения. Это может иметь некоторый эффект. Если вы делаете сетевой запрос, вы можете также установить тайм-аут, если после этого ответа нет, запрос будет отменен. – Inducesmile
Просто я думаю, что если я установил короткий тайм-аут, когда пользователь с плохой скоростью соединения может иметь ошибку, хотя устройство будет иметь доступ в Интернет. Или я ошибаюсь? –
Затем вы должны проверить, сколько раз разная скорость соединения будет отвечать, теперь у вас есть эталон. Я думаю, что это может быть лучше, если использовать фоновый сервис, работающий непрерывно. – Inducesmile