Почему приложения для Android выгружаются и не присылают уведомления
Android, кто бы что ни говорил, — операционка очень продуманная и функциональная. Даже если Google периодически подворовывает у iOS те или иные нововведения, это совсем не значит, что у неё нет своих уникальных наработок. На самом деле их довольно много, просто большая часть механизмов, которые обеспечивают комфортную и стабильную работу смартфонов, делают это в пассивном режиме. Ведь лучший механизм — тот, которого не видно. Правда, иногда производителям начинает казаться, что они умнее Google. Тогда они начинают делать лучше и, к сожалению, всё ломают.
У большинства современных смартфонов проблемы с работой приложений
Если вы помните, первые несколько лет смартфоны на Android страдали от слабой автономности. Причиной были приложения, которые не замирали в фоновом режиме, а продолжали работать и потреблять энергию. Поэтому Google придумала специальный механизм Doze, который заставлял приложения засыпать, но при этом сохранять накопленный прогресс и не выгружаться из памяти. Да, разработчикам пришлось переделать свой софт, но в целом — из-за того, что Doze был единым стандартом, — никаких проблем больше не было. Но тут вмешались производители.
Почему Android выгружает приложения
Слева — OnePlus, который убивает половину приложений в фоне, справа — Google Pixel, который сохраняет все 100%
В большинстве современных прошивок на базе Android, помимо Doze, используются собственные механизмы оптимизации энергопотребления, справляющиеся с работающими в фоне приложениями. Некоторые действительно мягко заставляют их засыпать, а другие — просто выгружают из памяти. Жёстче всех, кажется, действует именно OnePlus, но и другие тоже не отстают. Это хорошо видно в бенчмарке DontKillMyApps, который показывает, сколько приложений продолжают работать в фоновом режиме. Так вот прошивка OxygenOS от OnePlus убивает больше половины всех программ.
Очевидно, что перед OnePlus никогда не стояло цели навредить пользователям или добиться повышения автономности ценой удобства использования. Просто дело в том, что собственные механизмы смартфонов китайского бренда могут вступать в конфликт с Doze, да и разработчики просто-напросто не адаптируют свои приложения для OxygenOS. В результате получается то, что получается: приложения выгружаются из памяти, теряют способность присылать уведомления, пользователи пропускают важные события, злятся и сходят с ума в поисках решения для устранения проблемы, которого просто не существует.
Не приходят уведомления на Android
Не приходят уведомления? Так ваш смартфон бережёт энергию
Возможно, вы не знали, но механизмы энергосбережения для Android устроены таким образом, что стараются максимально эффективно сберечь ресурс аккумулятора. Поэтому, когда они видят, что какое-то приложение потребляет слишком много энергии, оно выгружает его из памяти, а для надёжности ещё и блокирует его фоновую синхронизацию. Как следствие, оно теряет возможность присылать уведомления, а также обновляться в фоновом режиме. Это явление характерно для мессенджеров и почтовых клиентов, которые нужно принудительно открыть и перезагрузить, чтобы там появились последние сообщения.
Как сделать, чтобы на Android приходили уведомления
У этой проблемы существует решение, хоть и довольно компромиссное:
- Перейдите в «Настройки» и откройте вкладку «Приложения»;
- Найдите приложение, которое всегда выгружается из фона, откройте его и перейдите в «Сведения энергосбережения»;
Запретите автоматическое управление энергосбережением
- Отключите автоматическое управление;
- Откройте многозадачность и свайпните по окну приложения вниз, чтобы над ним появился значок замка, который не позволит ему выгружаться из фона.
Почему это решение временное? Да потому что некоторые прошивки могут самостоятельно менять заданные вами настройки и возобновлять выгрузку приложений из памяти. Поэтому этим вопросом нужно заняться Google, сделав использование Doze обязательным для всех производителей. Возможно, это немного попахивает автократией, но только таким образом поисковый гигант сможет добиться одинаково верного функционирования операционной системы на всех устройствах независимо от прошивки.