Как сделать так, чтобы приложение не выгружалось из памяти андроида

Обновлено: 21.11.2024

В этой статье показано, как уменьшить объем памяти, который использует ваше приложение при переходе в фоновое состояние, чтобы оно не было приостановлено и, возможно, завершено.

Новые фоновые события

В Windows 10 версии 1607 представлены два новых события жизненного цикла приложения: EnteredBackground и LeavingBackground. Эти события сообщают вашему приложению, когда оно переходит в фоновый режим и выходит из него.

Когда ваше приложение переходит в фоновый режим, ограничения памяти, установленные системой, могут измениться. Используйте эти события для проверки текущего потребления памяти и свободных ресурсов, чтобы оставаться ниже предела, чтобы ваше приложение не было приостановлено и, возможно, завершено, пока оно находится в фоновом режиме.

События для управления использованием памяти вашим приложением

MemoryManager.AppMemoryUsageLimitChanging поднимается непосредственно перед изменением предела общей памяти, которую может использовать приложение. Например, когда приложение переходит в фоновый режим, а на Xbox ограничение памяти изменяется с 1024 МБ до 128 МБ.
Это самое важное событие, которое необходимо обработать, чтобы платформа не приостановила или не завершила работу приложения.

MemoryManager.AppMemoryUsageIncreased возникает, когда потребление памяти приложением увеличивается до более высокого значения в перечислении AppMemoryUsageLevel. Например, от низкого до среднего. Обработка этого события необязательна, но рекомендуется, так как приложение по-прежнему несет ответственность за соблюдение лимита.

MemoryManager.AppMemoryUsageDecreased возникает, когда потребление памяти приложением снижается до более низкого значения в перечислении AppMemoryUsageLevel. Например, от высокого к низкому. Обработка этого события необязательна, но указывает, что при необходимости приложение может выделить дополнительную память.

Обработка перехода между передним планом и фоном

Когда ваше приложение перемещается с переднего плана на задний план, возникает событие EnteredBackground. Когда ваше приложение возвращается на передний план, возникает событие LeavingBackground. Вы можете зарегистрировать обработчики этих событий при создании приложения. В шаблоне проекта по умолчанию это делается в конструкторе класса App в App.xaml.cs.

Поскольку работа в фоновом режиме уменьшит ресурсы памяти, которые может сохранять ваше приложение, вам также следует зарегистрироваться для событий AppMemoryUsageIncreased и AppMemoryUsageLimitChanging, которые вы можете использовать для проверки текущего использования памяти вашим приложением и текущего ограничения. Обработчики этих событий показаны в следующих примерах. Дополнительные сведения о жизненном цикле приложений UWP см. в разделе Жизненный цикл приложения.

При возникновении события EnteredBackground установите переменную отслеживания, чтобы указать, что вы в настоящее время работаете в фоновом режиме. Это будет полезно, когда вы будете писать код для сокращения использования памяти.

Когда ваше приложение переходит в фоновый режим, система уменьшает лимит памяти для приложения, чтобы гарантировать, что текущее активное приложение имеет достаточно ресурсов для обеспечения отзывчивого взаимодействия с пользователем.

Обработчик событий AppMemoryUsageLimitChanging сообщает вашему приложению, что выделенная ему память была уменьшена, и предоставляет новый предел в аргументах события, передаваемых в обработчик. Сравните свойство MemoryManager.AppMemoryUsage, которое обеспечивает текущее использование вашего приложения, со свойством NewLimit аргументов события, которое указывает новый предел. Если объем используемой памяти превышает лимит, необходимо уменьшить объем используемой памяти.

В этом примере это делается во вспомогательном методе ReduceMemoryUsage, определение которого приведено далее в этой статье.

Некоторые конфигурации устройств позволяют приложению продолжать работать с превышением нового предела памяти до тех пор, пока система не столкнется с нехваткой ресурсов, а некоторые — нет. В частности, на Xbox приложения будут приостановлены или завершены, если они не уменьшат память до новых пределов в течение 2 секунд. Это означает, что вы можете обеспечить наилучшее взаимодействие с самым широким диапазоном устройств, используя это событие, чтобы снизить использование ресурсов ниже предела в течение 2 секунд после возникновения события.

Возможно, что хотя использование памяти вашим приложением в настоящее время находится ниже предела памяти для фоновых приложений, когда оно впервые переходит в фоновый режим, оно может увеличить потребление памяти со временем и начать приближаться к пределу. Обработчик AppMemoryUsageIncreased дает возможность проверить ваше текущее использование при его увеличении и при необходимости освободить память.

Проверьте, имеет ли AppMemoryUsageLevel значение High или OverLimit, и если да, уменьшите использование памяти. В этом примере это обрабатывается вспомогательным методом ReduceMemoryUsage. Вы также можете подписаться на событие AppMemoryUsageDecreased, проверить, не превышает ли ваше приложение ограничение, и если да, то вы знаете, что можете выделить дополнительные ресурсы.

ReduceMemoryUsage – это вспомогательный метод, который можно реализовать для высвобождения памяти, когда приложение превышает лимит использования при работе в фоновом режиме. То, как вы освобождаете память, зависит от специфики вашего приложения, но один из рекомендуемых способов освобождения памяти — избавиться от пользовательского интерфейса и других ресурсов, связанных с представлением вашего приложения. Для этого убедитесь, что вы работаете в фоновом режиме, затем задайте для свойства Content окна вашего приложения значение null, отмените регистрацию обработчиков событий пользовательского интерфейса и удалите любые другие ссылки на страницу, которые у вас могут быть. Если вы не отмените регистрацию обработчиков событий пользовательского интерфейса и не очистите любые другие ссылки, которые у вас могут быть на страницу, это предотвратит высвобождение ресурсов страницы. Затем вызовите GC.Collect, чтобы немедленно вернуть освобожденную память. Как правило, вы не форсируете сборку мусора, потому что система позаботится об этом за вас. В этом конкретном случае мы уменьшаем объем памяти, выделяемой этому приложению, поскольку оно переходит в фоновый режим, чтобы уменьшить вероятность того, что система решит, что ей следует завершить работу приложения для освобождения памяти.

Когда содержимое окна собрано, каждый кадр начинает процесс отключения. Если в дереве визуальных объектов под содержимым окна есть страницы, они начнут запускать событие Unloaded. Страницы не могут быть полностью удалены из памяти, пока не будут удалены все ссылки на них. В обратном вызове Unloaded выполните следующие действия, чтобы обеспечить быстрое освобождение памяти:

  • Очистите все большие структуры данных на Странице и задайте для них значение null .
  • Отмените регистрацию всех обработчиков событий, имеющих методы обратного вызова на странице. Обязательно зарегистрируйте эти обратные вызовы во время обработчика событий Loaded для страницы. Событие Loaded возникает, когда пользовательский интерфейс воссоздан и страница добавлена ​​в дерево визуальных объектов.
  • Вызовите GC.Collect в конце обратного вызова Unloaded, чтобы быстро собрать мусор любой из больших структур данных, для которых вы только что установили значение null . Опять же, обычно вы не форсируете сборку мусора, потому что система позаботится об этом за вас. В этом конкретном случае мы уменьшаем объем памяти, выделяемой этому приложению, поскольку оно переходит в фоновый режим, чтобы снизить вероятность того, что система решит, что ей следует завершить работу приложения для освобождения памяти.

В обработчике событий LeavingBackground установите переменную отслеживания ( isInBackgroundMode ), чтобы указать, что ваше приложение больше не работает в фоновом режиме. Затем проверьте, не является ли содержимое текущего окна нулевым, что будет, если вы избавитесь от представлений вашего приложения, чтобы очистить память во время работы в фоновом режиме. Если содержимое окна равно null , перестройте представление приложения. В этом примере содержимое окна создается во вспомогательном методе CreateRootFrame.

Вспомогательный метод CreateRootFrame повторно создает содержимое представления для вашего приложения. Код в этом методе почти идентичен коду обработчика OnLaunched, представленному в шаблоне проекта по умолчанию. Единственное отличие состоит в том, что обработчик Launching определяет предыдущее состояние выполнения из свойства PreviousExecutionState объекта LaunchActivatedEventArgs, а метод CreateRootFrame просто получает предыдущее состояние выполнения, переданное в качестве аргумента. Чтобы свести к минимуму дублирование кода, вы можете изменить код обработчика событий Launching по умолчанию, чтобы он вызывал CreateRootFrame.

Рекомендации

Переход с переднего плана на задний

Когда приложение перемещается с переднего плана на задний план, система работает от имени приложения, освобождая ресурсы, которые не нужны в фоновом режиме. Например, инфраструктура пользовательского интерфейса очищает кэшированные текстуры, а видеоподсистема освобождает память, выделенную от имени приложения. Однако приложению по-прежнему необходимо тщательно отслеживать использование памяти, чтобы избежать приостановки или завершения работы системы.

Когда приложение перемещается с переднего плана на задний план, оно сначала получает событие EnteredBackground, а затем событие AppMemoryUsageLimitChanging.

  • Используйте событие EnteredBackground, чтобы освободить ресурсы пользовательского интерфейса, которые, как вы знаете, не нужны вашему приложению при работе в фоновом режиме. Например, вы можете освободить обложку песни.
  • Используйте событие AppMemoryUsageLimitChanging, чтобы убедиться, что ваше приложение использует меньше памяти, чем новое ограничение в фоновом режиме. Убедитесь, что вы освободили ресурсы, если нет. Если вы этого не сделаете, ваше приложение может быть приостановлено или прекращено в соответствии с политикой конкретного устройства.
  • Вручную вызовите сборщик мусора, если ваше приложение превысило новый лимит памяти при возникновении события AppMemoryUsageLimitChanging.
  • Используйте событие AppMemoryUsageIncreased, чтобы продолжать отслеживать использование памяти вашим приложением во время работы в фоновом режиме, если вы ожидаете, что оно изменится. Если AppMemoryUsageLevel имеет значение High или OverLimit, убедитесь, что вы освободили ресурсы.
  • Для оптимизации производительности рассмотрите возможность освобождения ресурсов пользовательского интерфейса в обработчике событий AppMemoryUsageLimitChanging, а не в обработчике EnteredBackground. Используйте логическое значение, заданное в обработчиках событий EnteredBackground/LeavingBackground, чтобы отслеживать, находится ли приложение в фоновом или переднем плане. Затем в обработчике событий AppMemoryUsageLimitChanging, если AppMemoryUsage превышает лимит и приложение находится в фоновом режиме (на основе логического значения), вы можете освободить ресурсы пользовательского интерфейса.
  • Не выполняйте длительные операции в событии EnteredBackground, так как переход между приложениями может показаться пользователю медленным.

Переход от фона к переднему плану

Когда приложение перемещается из фона на передний план, оно сначала получает событие AppMemoryUsageLimitChanging, а затем событие LeavingBackground.

Пользователи Android сталкиваются с одной из распространенных проблем: приложения закрываются в фоновом режиме. Когда пользователи открывают приложение и оставляют его свернутым, оно убивает его, даже постоянные уведомления от таких приложений, как антивирусное приложение. Эта проблема может поднять голову во многих отношениях. Если человек переключается между несколькими приложениями, вдруг одно из них перезагружается, и он теряет свое место. Основываясь на опыте пользователей, здесь упомянуто несколько решений для решения этой проблемы, с которой сталкиваются пользователи Android:

  • Проверьте, включены ли «Параметры разработчика», потому что здесь есть параметр, который ограничивает количество приложений, работающих в фоновом режиме. Если это так, убедитесь, что в разделе «Приложения» отключены все параметры, например «Не сохранять активности» или «Ограничение фоновых процессов».
  • Android убивает приложения, если ему требуется оперативная память, которую использует приложение. Проверьте наличие приложений для очистки оперативной памяти, установленных на мобильных телефонах, таких как приложения для вредоносных программ, приложения для просмотра файлов, приложения для контроля заряда батареи и т. д.
  • Facebook — еще один ресурсосос. Проверьте в "Параметры разработчика", какой объем оперативной памяти используется для этого приложения.
  • Удалите «English us», если он установлен на мобильном телефоне.
  • Один из пользователей Android, столкнувшихся с этой проблемой, предложил решение этой проблемы, т. е. перейдите в "Настройки" и найдите Smart Assistant. Откройте диспетчер энергосбережения и включите его. Теперь выберите приложения, которые вы хотите запускать в фоновом режиме.
  • Перейдите в приложение "Настройки" и выберите "Батарея".

В правом верхнем углу меню с тремя точками вы найдете «Оптимизация батареи».

Вот список приложений, которые не оптимизированы. По умолчанию этот список обычно очень мал. Нажмите на список выбора «Не оптимизировано» и выберите «Все приложения».

Проведите вниз по списку и найдите приложения, которые вы особенно хотите, чтобы они всегда работали. Нажмите на название приложения. Из двух вариантов установите флажок «Не оптимизировать».

Батарея вашего телефона Android разряжается быстрее, чем ожидалось? Одной из причин этого могут быть приложения, которые продолжают работать в фоновом режиме еще долгое время после того, как вы полностью перешли к другой задаче. Эти приложения разряжают вашу батарею, а также потребляют память вашего устройства. Вы можете остановить работу приложений Android в фоновом режиме и сэкономить драгоценную память телефона и время работы от аккумулятора, используя несколько способов, описанных в этом руководстве.

Примечание. В этом руководстве мы использовали Google Pixel 3a под управлением Android 11. Действия могут различаться в зависимости от марки, модели и версии Android, на которой работает ваше устройство.

Также читайте: 7 лучших смартфонов-раскладушек, которые можно купить в 2022 году

Узнайте, какие приложения работают и потребляют больше всего времени автономной работы

Это поможет вам узнать, какие приложения открыты и работают, как долго они работают и сколько оперативной памяти они потребляют.

Для этого перейдите в «Настройки» и нажмите «Параметры разработчика». (Если он недоступен, перейдите по этой ссылке, чтобы узнать, как активировать параметры разработчика.) Это должно быть в подменю «Система».

Выберите «Запущенные службы».

На экране «Запуск служб» вы увидите список фоновых приложений, запущенных на вашем устройстве.

Чтобы увидеть, какие приложения расходуют заряд аккумулятора, снова перейдите на главный экран настроек. Там вы должны увидеть меню батареи. В раскрывающемся меню в правом верхнем углу выберите "Использование батареи".

На новом экране вы можете увидеть, какие приложения потребляют больше всего энергии.

Как принудительно остановить Android из приложений, работающих в фоновом режиме

Чтобы приложения Android перестали работать в фоновом режиме, достаточно принудительно остановить их. Это довольно «агрессивный» способ закрытия приложения, который означает, что ваши данные или недавний игровой прогресс не будут сохранены до тех пор, пока вы не остановитесь, и о них можно будет забыть.

Подумайте об этом, как о выключении компьютера, не выключив его должным образом: это сопряжено с некоторым риском потери некоторых данных, но не нанесет долговременного ущерба приложению и не сотрет его.

Примечание. Если вы принудительно останавливаете приложения Android, это не мешает им работать в фоновом режиме при следующем открытии.

Вы можете принудительно остановить приложения Android непосредственно из меню "Запущенные службы" в настройках разработчика или непосредственно из подменю "Использование батареи".

Если в разделе "Запущенные службы" вы выбрали приложение, которое использует много оперативной памяти, вы можете выбрать его и просто нажать "Стоп", чтобы остановить его работу.

Вы также можете принудительно остановить приложения в разделе "Использование батареи". Выберите приложения, которые хотите остановить, и нажмите "Принудительно остановить".

Вы увидите предупреждение: "Если вы принудительно остановите приложение, оно может работать неправильно". Не беспокойтесь об этом предупреждении и нажмите OK.

Кроме того, более распространенный способ остановки приложений – открыть "Настройки" и нажать "Приложения и уведомления". Выберите параметр, который позволит вам увидеть все установленные приложения.

Прокрутите список приложений и найдите те, которые хотите остановить. Чтобы остановить приложение, коснитесь его и выберите «Принудительно остановить». Это остановит приложение во время текущего сеанса, но перезапустит его, когда вы перезагрузите телефон.

Если приложение вам вообще не нужно, вы можете нажать и удерживать его значок и выбрать "Удалить" или на том же экране нажать "Удалить" и подтвердить свое действие.

Также прочтите: 4 способа изменить приложение для обмена сообщениями по умолчанию на Android

Оптимизация телефона с помощью Adaptive Battery и Sleep

Если вы перейдете в «Настройки» -> «Аккумулятор», включение «Адаптивного аккумулятора» продлит срок службы аккумулятора в зависимости от использования телефона. Этот параметр существенно ограничивает объем системных ресурсов, доступных приложениям, которые вы почти не используете.

С помощью машинного обучения он определяет, какие приложения вы хотите использовать, а какие не будете использовать в этот день. Он изучает ваши модели использования и помещает часто используемые приложения в один из пяти сегментов ожидания приложений: "Частое", "Активное", "Рабочий набор", "Редкое" и "Никогда".

Телефоны Samsung имеют некоторые дополнительные функции в этой области, которые позволяют вам выбирать приложения для сна, когда вы их не используете.

На устройстве Samsung выберите "Настройки > Аккумулятор и уход за устройством > Аккумулятор".

Здесь нажмите «Ограничения использования в фоновом режиме», затем установите ползунок «Перевести неиспользуемые приложения в спящий режим». Ниже вы можете выбрать, какие приложения вы хотите перевести в спящий режим.

Общая оптимизация батареи

Вы также можете оптимизировать расход заряда аккумулятора, выбрав "Настройки > Приложения и уведомления > Доступ к специальным приложениям".

Выберите «Оптимизация батареи». Выберите «Все приложения» в раскрывающемся меню, чтобы оптимизировать использование батареи всеми приложениями.

Вы также можете оптимизировать использование батареи отдельными приложениями, если не хотите включать оптимизацию батареи для каждого отдельного приложения.

Обновления Android содержат несколько функций, которые помогают оптимизировать использование памяти телефона и время работы от аккумулятора, а также решать другие проблемы с производительностью.

Также читайте: как полностью удалить и удалить приложения на Android

Часто задаваемые вопросы

1. Нужно ли правильно «закрывать» приложения на Android?

У приложений для Android есть забавный способ закрытия. В отличие от ПК или Mac, где вы обычно можете закрыть программу и завершить ее процесс, просто щелкнув значок «x» в углу окна.

На Android сама идея закрытия приложения работает совсем по-другому. Нет специальной кнопки для закрытия приложения, когда оно открыто. Да, вы можете нажать кнопку "Домой" или "Назад", и приложение исчезнет с экрана, но в этот момент оно просто будет находиться в режиме ожидания в фоновом режиме.

Чтобы «убить» фоновое приложение, коснитесь квадратного значка (или «Последние приложения» на устройствах Samsung), затем проведите пальцем вверх по каждому приложению, которое хотите закрыть.

2. Почему приложения Android продолжают работать в фоновом режиме?

В большей степени, чем Windows на вашем ПК, приложения Android продолжают работать, поскольку они часто поддерживают подключение к Интернету, чтобы вы знали, получаете ли вы сообщения, отправляете ли вам уведомления и выполняете другие действия приложений, зависящие от Интернета.

3. Сохранит ли трафик закрытие фоновых приложений?

Данные беспокоят гораздо меньше, чем время автономной работы, если приложения работают в фоновом режиме. Используя наше руководство выше, вы можете узнать, какие из них используют больше всего данных, что даст вам представление о том, сколько фоновых данных они используют в зависимости от вашего использования. Но в большинстве случаев есть лучшие способы сократить использование данных, чем закрытие фоновых приложений.

Помните, что помимо закрытия приложений, работающих в фоновом режиме, вы также можете заблокировать доступ в Интернет для определенных приложений, чтобы сэкономить ресурсы. Читайте дальше, чтобы узнать, как транслировать YouTube с телефона iOS или Android на ПК.

Я не программист. И насколько мне известно, Android использует максимально возможное количество оперативной памяти, загружая как можно больше приложений, чтобы запуск/открытие (или возврат к ним) проходили более плавно.

Мой вопрос:

Есть ли какой-либо способ выбрать, какие приложения я хочу ВСЕГДА хранить в памяти, а какие НИКОГДА не хочу иметь там?

Например:

WhatsApp – очень распространенное приложение. Я всегда хотел бы, чтобы это было там. Карты Google всегда открыты и занимают место. Я почти не использую его, и я не против подождать 5-10 секунд, пока он откроется. Было бы лучше использовать эту оперативную память для других приложений, таких как мой браузер.

Заранее спасибо.

Я не рекомендую пытаться придумать способ перехитрить обработку системных ресурсов Android. ОС Android очень хорошо справляется с закрытием определенных приложений/служб, и попытка вручную контролировать это приведет к неожиданным результатам. Я настоятельно не рекомендую вам искать убийцы задач и т. д. ОС просто перезапустит любую службу, которую вы убьете, что приведет к трате ресурсов (батареи, времени обработки и т. д.).

4 ответа 4

Вы никогда не можете "выбрать" приложение само по себе и указать, что приложение будет иметь гарантированный объем памяти.

Конечно, Карты Google занимают место, но это относится к реальному приложению и не означает, что оно перегружает память. Android довольно умен, когда дело доходит до управления памятью.

При длительном нажатии клавиши "Домой" отображается список последних приложений, но это не означает, что все они загружены одновременно. Android отслеживает, какие действия были показаны, и при необходимости загружает их снова, а когда нехватка места в ОЗУ достигает определенного порога, Android загружает их, чтобы освободить место для других приложений.

Вы не можете переопределить диктат Android о том, как и какое приложение должно быть в ОЗУ, просто исходя из предположения пользователя, что "это определенное приложение должно находиться в памяти и имеет гарантированный объем ОЗУ X, потому что я хочу, чтобы оно< /эм>"

Android — это не Windows, где их диспетчер задач доступен в любое время через Ctrl + Alt + Del и отключает процессы, чтобы «освободить память».. Эту мантру нужно твердо повторять до тошноты! :)

Согласно заявлению Райана Конрада в комментарии, возникшему в результате обсуждения таких приложений, как RAM Boosters, Task Killers и т. д., это утверждение подводит итог тому, почему упомянутые приложения могут негативно влиять на аккумулятор, не говоря уже о введении нестабильности в системе - Это циклы ЦП, о которых вам следует беспокоиться больше, чем о памяти. Циклы ЦП WORD разряжают батарею независимо от того, и, как говорит комментатор, Свободная память - это потраченная впустую память. Пусть ОС этим занимается. Это лучше делать. Он знает, какую память можно безопасно освободить, не вызывая дополнительной нагрузки на устройство

Итак, я заметил, что многозадачность стала почти невозможной, потому что мой Pixel 3 под управлением Android 11 продолжает закрывать приложение, когда я переключаюсь на другое. Из-за этого я не могу переключаться между приложениями чата, играть в Pokemon Go и делать заметки между приложениями, потому что они постоянно закрываются и перезапускаются, когда я переключаюсь между ними.

Думаю, я нашел решение, которое до сих пор работало для меня (с момента публикации прошел всего 1 день). Я полагаю, что это может быть связано с новой функцией, представленной в Android 11, под названием «Приостановить выполнение для кэшированных приложений», которая позволяет Android замораживать кэшированные приложения, чтобы уменьшить потребление памяти и разрядку батареи. Поэтому я отключил его.

Короче говоря, вам нужно перейти к параметрам разработчика и отключить новую функцию Android 11 под названием «Приостановить выполнение для кэшированных приложений».

Чтобы стать разработчиком, откройте "Настройки > О телефоне" и нажимайте "Номер сборки", пока не появится диалоговое окно о том, что вы стали разработчиком.

Откройте "Настройки" > "Система" > "Дополнительно" > "Параметры разработчика".

Прокрутите вниз, пока не увидите «Приостановить выполнение для кэшированных приложений». Нажмите на нее.

Отключите его, появится сообщение о том, что вам необходимо перезагрузить телефон; Сделай это.

Должно быть сделано! Если это не сработает, вам нужно будет убедиться, что любое приложение, которое вам нужно запустить (например, Pokemon Go), не имеет ограничений в разделе батареи приложения, что оно также не оптимизировано. Это также помогло мне отключить адаптивный аккумулятор для еще большего сохранения памяти.

Обновление: преимущества, кажется, уменьшаются после 3-го дня. Я все еще могу работать в режиме многозадачности, но фоновые приложения, такие как использование PoGo Plus, больше не работают больше минуты.

Обновление: прошла неделя или около того, а я все еще вижу преимущества этих шагов. Android 11 по-прежнему очень агрессивен в управлении памятью, но, по крайней мере, теперь у меня есть несколько минут между приложениями в фоновом режиме, а не секунды. Со временем я тоже заметил, что мне нужно перезагружать телефон хотя бы через день, чтобы поддерживать эти скорости; я закончил тем, что сделал сценарий Tasker, чтобы помочь сделать это автоматически.

TL;DR это абсолютно помогает, но это не идеальное решение. Это увеличило время, в течение которого я могу переключаться между приложениями, но это не мешает Android 11 на моем Pixel 3 в конечном итоге закрывать фоновые приложения.

Читайте также: