Почему система так поступает
Android считает фоновую активность главным потребителем заряда и по умолчанию ограничивает её всем приложениям одинаково. Программе, которая держит постоянное соединение, такое ограничение мешает: система замораживает её через несколько минут после выключения экрана, а канал разрывается.
Производители телефонов добавляют к этому свои механизмы — отдельные списки автозапуска, «защищённые приложения», агрессивные режимы экономии. Поэтому одной настройки иногда мало, и проверять приходится два-три места. Что именно приложение делает в фоне на этой системе, описано на странице приложения для Android.
Что настроить
- Снимите ограничение батареи с приложения «Настройки» → «Приложения» → название приложения → «Батарея». Выберите вариант без ограничений — формулировки отличаются: «Не ограничивать», «Без ограничений», «Разрешить фоновую работу».
- Разрешите работу в фоне Там же, в карточке приложения, проверьте пункт о фоновом использовании данных и мобильного интернета: при выключенном фоновом трафике соединение тоже не выживет.
- Добавьте приложение в автозапуск На фирменных оболочках это отдельный список в разделе управления питанием или безопасности. Без него приложение не поднимется само после перезагрузки.
- Закрепите приложение в списке недавних На части оболочек значок замка в меню недавних задач не даёт системе выгрузить приложение при очистке памяти.
- Проверьте режим экономии заряда Общий режим энергосбережения ограничивает фон всем приложениям сразу. Если он включён постоянно, соединение будет рваться независимо от индивидуальных разрешений.
- Проверьте результат Включите подключение, выключите экран на десять-пятнадцать минут и вернитесь. Соединение осталось активным — настройка сработала.
Точные названия пунктов зависят от производителя и версии Android, и мы намеренно не приводим их одним списком: он всё равно не совпал бы с вашим телефоном. Ориентируйтесь на смысл — ограничение фоновой работы для одного приложения.
Чем это оплачивается
| Что меняется | Что это значит |
|---|---|
| Приложение работает в фоне постоянно | Соединение не рвётся при выключенном экране |
| Расход заряда немного растёт | Плата за постоянное подключение; насколько именно — зависит от телефона и сети, поэтому цифр мы не называем |
| Приложение поднимается после перезагрузки | Только если разрешён автозапуск |
| Общий режим экономии остаётся включённым | Он всё равно ограничит фон: исключение для одного приложения его не отменяет |
Если не помогло
- Проверьте, не включён ли режим экономии трафика — он тоже режет фоновые соединения.
- Посмотрите, не чистит ли память сторонняя программа-ускоритель: такие приложения закрывают фоновые процессы по расписанию.
- Убедитесь, что соединение рвётся именно при выключенном экране, а не в любой момент: во втором случае это другой сценарий и другой разбор.
- Если поведение сохраняется на другой сети и после перезагрузки, напишите в поддержку и укажите модель телефона и версию Android — здесь модель действительно важна.
Когда настройку придётся повторить
Исключение из оптимизации батареи не вечное: система пересматривает его в нескольких ситуациях, и приложение снова начинает выгружаться. Если поведение вернулось спустя недели нормальной работы, вспомните, не было ли перед этим чего-то из списка.
- Крупное обновление Android: часть разрешений после него возвращается к значениям по умолчанию.
- Обновление самого приложения на некоторых оболочках сбрасывает разрешение автозапуска.
- Включение общего режима экономии заряда — он действует поверх индивидуальных исключений.
- Сброс настроек приложений или сети в системных параметрах.
- Установка программы-ускорителя, которая чистит память по расписанию.
Проверка занимает полминуты: откройте карточку приложения в настройках и посмотрите, стоит ли режим без ограничений. Это быстрее, чем заново проходить диагностику подключения, и почти всегда объясняет, почему поведение вернулось именно сейчас, а не месяц назад. Заодно посмотрите разрешение автозапуска: на фирменных оболочках эти два переключателя живут в разных разделах и сбрасываются независимо друг от друга.