У меня есть приложение для отслеживания, которое должно отправлять обновления местоположения на веб-сервер каждые 5 секунд. Это работает нормально, пока приложение бодрствует/видно.
Если устройство заблокировано, приложение переводится в спящий режим через 15 минут (плюс-минус секунда-другая).
Добавление приложения в «Неотслеживаемые приложения» в разделе «Монитор заряда батареи» также не останавливает его переход в спящий режим.
Я попытался создать wakelock, т.е.
pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "TrackerTag");
wakeLock.acquire();
но даже это не помогает. Приложение по-прежнему переходит в спящий режим и перестает отправлять обновления. Мне не нужно держать экран включенным (отсюда PARTIAL_WAKE_LOCK), но мне нужно, чтобы приложение бодрствовало, чтобы оно могло передавать координаты GPS в базу данных сервера.
Я добавил приложение в список игнорирования для списка оптимизации батареи, так что это не значит, что оно убивает его, и вышеуказанный wakelock, похоже, ничего не делает.
Я также попытался создать службу в качестве службы переднего плана, т.е. /a> и это также не спасает приложение от перехода в спящий режим через 15 минут.
Что мне нужно сделать, чтобы сказать андроиду «оставьте это приложение в покое, несмотря ни на что, и не останавливайте его, если я специально не закрою все и не убью его»?