Я сделал приложение, которое подключается к моему серверу каждые 5-10 минут и проверяет, есть ли какие-либо изменения в базе данных.
Поэтому я использую Сервис, чтобы приложение могло работать в фоновом режиме, а пользователь мог закрыть приложение и получать сообщения в строке состояния. Внутри него я использую Thread, чтобы приложение спал на 5-10 минут. Проблема начинается, когда я блокирую телефон. чем приложение просто останавливается (это потому, что когда вы блокируете свой телефон, он переходит в «сон»), поэтому я понял, что мне нужно это:
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, 'My Tag');
wl.acquire();
Это заставляет телефон не спать, кроме экрана. Но там я застрял. Это работает нормально, но сильно разряжает батарею. 10% в час :( И я считаю, что проблема не в том, что приложение должно постоянно запрашивать эти веб-сервисы, а в той функции, которая заставляет этот телефон работать.
Итак, мой вопрос в том, есть ли какое-либо другое решение, которое я могу использовать, потому что у меня есть какое-то приложение на телефоне, которое работает в фоновом режиме, но они совсем не разряжают батарею (avast, защитник сока и т. д.).
Любая идея очень полезна!
С уважением!