Pull to refresh

Comments 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, кажется, общие корни - появились примерно в одно время и имели схожий по длительности срок до наложения ограничений.

Может вам попробовать Sync Adapter API чтобы данные синхронизировать. Не знаю зачем ещё из фона резко появляются события в календаре кроме как синхронизации с сервером

Sign up to leave a comment.

Articles