Почему я получаю SoketTimeOutException в спящем режиме устройства?

Я вызываю HTTPS-соединение веб-службы из класса Service, которое вызывается диспетчером тревог каждые 1 минуту. Когда я запускаю службу, она работает нормально, я получаю ответ от веб-службы, пока устройство не переходит в спящий режим. Когда экран устройства отключается, при следующем вызове веб-службы я получаю эту ошибку

   com.turbomanage.httpclient.HttpRequestException: java.net.SocketTimeoutException: connect timed out

он будет продолжать выдавать это исключение, пока я не активирую устройство. Когда устройство активируется, веб-служба начинает получать ответ от сервера, и тогда я не получаю исключения. Поэтому, пожалуйста, кто-нибудь, скажите мне, в чем может быть проблема. Тестирующее устройство - Nexsus 5X.

2 ответа

Решение

Я вызываю HTTPS-соединение веб-службы из класса обслуживания, которое вызывается диспетчером аварийных сигналов каждые 1 мин.

Это не будет работать на Android 6.0+, если ваше приложение не находится в белом списке оптимизации батареи. Режим ожидания остановит большинство ваших тревог, и в тех случаях, когда вы получаете контроль, у вас может не быть доступа в Интернет.

Кроме того, имейте в виду, что пробуждение устройства каждую минуту для перехода к сетевому вводу-выводу разряжает батарею, поэтому в Android 6.0 в первую очередь был введен режим Doze.

Оптимизировать для режима ожидания и ожидания приложений

https://developer.android.com/training/monitoring-device-state/doze-standby

И код для игнорирования батареи оптимизировать

PowerManager powerManager = (PowerManager)getSystemService(Context.POWER_SERVICE);
Intent intent = new Intent();
intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
if (powerManager.isIgnoringBatteryOptimizations(getPackageName())) {
    intent.setAction(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS);
}
else {
    intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
    intent.setData(Uri.parse("package:" + getPackageName()));
    startActivity(intent);
}
Другие вопросы по тегам