Комментарии 11
Когда-то смартфоны привнесли многозадачность, открыв возможности полноценных ОС звонилкам, а сейчас отбирают её в погоне за временем автономной работы.
Когда это привнесли то на смартфоне не было столько приложений и возможностей.
Если хотите чтобы было как раньше - держите телефон на Power Bank. Тогда ограничения по питанию не будут такими строгими. Также вариант отключить все оптимизации расхода батарейки.
Хе, раньше хотя бы музыкальный плеер не умирал в фоне. А настройки нисколько не помогают в трех последних моих смартфонах, двух сяоми и последнем ноунейм китайфоне. Подключение к зарядке тоже. Времена, когда я мог днями копаться на форумах чтобы разблокировать загрузчик и подобрать не самую глючную прошивку уже прошли. Да, тут определённо есть белые списки для некоторых приложений, и что иронично Don'tKillMyApp туда входит, а приложения для подкастов - нет, ха.
Тогда всего-то была аппаратная кнопка резета :) и она была самой нажимаемой.
Может дело в самом приложении? Это же про какое-то конкретное речь? Потому что не наблюдал такого ни на одном смартфоне
Слушаю подкасты и музыку постоянно - никаких проблем. Для медиа есть специальные исключения в системе, которые разработчики используют. Попробуйте другое приложение для я подкастов, чтобы схожу говорить что Android/телефон плохой
емнип именно Xiaomi и схожие китайцы в угоду автономности на установки приложений и настройки почихивают. Тем более обидно, когда священные коровы типа Whatsapp в белом списке.
Уж не помню у какого-то проекта на Github.io была страница к каждому почти бренду. У одного так и было написано, что телефон так или иначе приложение прибьет.
В Android 12 появился ещё один стоковый механизм, зависящий от кол-ва процессов. Чуть было не стал приговором для Termux, но договорились. Google добавили что-то в настройки. Поэтому тут все хороши
Спасибо за статью, прочитать иногда удобне, чем смотреть)
Помимо этого, в Android 13 появилась настройка расхода заряда батареи для каждого приложения.
Она есть и в 12ом. Состояние "без ограничений" автоматически появляется при выдаче прав через пункт в настройках "Экономия заряда батареи", о котором в статье выше. В этом можно убедиться лично просто подёргав переключалки. Поэтому именно переход в настройки приложения не требуется - можно воспользоваться Intent'ом.
Выдача этих прав через intent наиболее удобным способом требует своеобразный (разрешённый лишь в некоторых случаях) пермишен ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS, после его получения достаточно вывести запрос на получение разрешения и нажать на одну кнопку:
startActivity(
Intent(
Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS,
Uri.parse("package:$packageName"),
)
)
Кроме того, в статье не описана проблема App Hibernation - эта фича может полностью заморозить приложение, если им не пользуются, соответственно работа сломается. Способ его отключения и множество других подробностей работы с WorkManager PeriodicRequest я описывал в статье на StackOverflow.
Гибернация это больше про ограничения на работу приложений и напрямую не касалось темы статьи. Про механизм гибернации можно долго спорить. Однозначно система правильно поступает что забирает ресурсы у приложений которые используются крайне редко. Разработчики могут создавать интеграции с системой и завлекать пользователя в приложение, чтобы они не ушло в глубокий сон.
Для большинства приложений это действительно верное решение, но не для каждого. Например, моё приложение добавляет события в календарь каждые N часов (периодическая работа WorkManager) и после настройки пользователю нет необходимости входить в приложение - это просто не нужно, всё без этого работает. Требуется предотвратить заморозку, чтобы оно не сломалось со временем.
Посчитал важным это указать: итоговый эффект после заморозки будет губительнее Restricted Bucket'а, отключение которого не относится напрямую к статье, но всё же было описано (то самое состояние "без ограничений" в настройках батареи и запрещает выдачу Restricted для приложения). А ещё у Restricted Bucket'а и App Hibernation, кажется, общие корни - появились примерно в одно время и имели схожий по длительности срок до наложения ограничений.
Современные способы запуска фоновой работы в Android