В Ice Cream Sandwich (ICS) ОС классифицирует ваше приложение, и у каждой категории есть свой собственный порог, в котором ОС определяет, какое приложение закрывать первым, когда ему не хватает памяти.
Кто-нибудь из вас был раздражен, скажем, вы открыли таймер для запуска в фоновом режиме, чтобы измерить время, прошедшее с чего-то, затем вы открыли еще несколько приложений и вернулись к своему таймеру, чтобы посмотреть, был ли он сброшен или закрыт? Я имею в виду, серьезно, это действительно мучительно раздражает.
Есть ли способ заставить приложение оставаться запущенным в фоновом режиме, несмотря ни на что, даже если ОС не хватает памяти?
4.0-ice-cream-sandwich
ram
samsung-galaxy-s-3
supertonsky
источник
источник
Ответы:
Принятый ответ оказался неверным или устаревшим. Модуль «Настройки приложения» для приложения Xposed позволяет вам указать для каждого приложения, чтобы приложения не были убиты или освобождены:
http://repo.xposed.info/module/de.robv.android.xposed.installer
http://repo.xposed.info/module/de.robv.android.xposed.mods.appsettings
Конечно, следует проявлять осторожность при игре с приложениями, изменяющими такое низкоуровневое поведение.
источник
Простой ответ: Нет. Android всегда использует OOM (Out-Of-Memory), расставляя приоритеты для освобождения неиспользуемой памяти. Вы можете изменить приоритеты приложений (по крайней мере, до перезагрузки) с помощью некоторых диспетчеров задач, но даже в этом случае, если память заканчивается, приложения в фоновом режиме начинают убиваться.
Подумайте об этом сценарии: вы загрузили плохо закодированное приложение, которое запускается при загрузке, вызывает переполнение буфера и загружает всю вашу память. Обычно это приложение убивается, но если оно остается открытым, оно эффективно блокирует ваш телефон до перезагрузки, после чего запускается снова, снова и снова и т. Д.
Некоторые таймеры используют сервисы с высокими приоритетами, чтобы избежать этой проблемы, но если вы запустите достаточно высокопроизводительные приложения с переключением ресурсов, когда таймер работает в фоновом режиме, он в конечном итоге будет убит.
источник
Integer.MAX_VALUE
. Почему вы думаете, что вещи ограничены вInteger.MAX_VALUE
любом случае?Нет. Однако на ум приходят два способа решения проблемы, но оба они могут быть реализованы только разработчиком: первый - отображать уведомление, Android будет предоставлять приложениям, которые делают это, более высокий приоритет, чем другие. Второй способ - сохранить время запуска, чтобы при перезапуске таймера он не сбрасывался.
источник
onSaveInstanceState
иonRestoreInstanceState
для сохранения состояния приложения, включая информацию о таймере. Нет необходимости бегать на переднем плане. Даже если это сигнал тревоги, вы можете использовать егоAlarmManager
для проверки позже. Единственная причина, по которой следует использовать Foreground: 1. У вас есть какая-то актуальная активность на переднем плане, например, воспроизведение музыки или показ видео. 2. Вы хотите, чтобы соединение для передачи данных было открыто (например, IMAP IDLE (push)).1-й способ: - Если вы делаете Sticky Thread в программе, да, вы можете принудительно держать вашу программу в рабочем состоянии. Однако помните, что пользователь в расширенном режиме настройки может остановить фоновые приложения. Однако, если вы записываете липкий поток так, чтобы он начинался при любом событии, которое произошло, то этого можно достичь.
2-й способ: если пользователь не является root-пользователем, и вы хотите запустить приложение на заднем плане. использовать скрипт SL4 в фоновом режиме из приложения. используйте скрипт, который будет выполнять фоновые проверки и программы, и напишите интерфейс, чтобы показать что-то еще.
Например: в большинстве игровых движков это встроено. Они подключаются к серверу, даже если пользователь выключил приложение. Причина, по которой движок создает в телефоне несколько сценариев, которые проверяются случайным образом при любых конкретных событиях и что TRIGGER используется для непрерывной работы вашего приложения на заднем плане переднего плана.
*** Извините за TYPO's .. проверка орфографии недоступна. Надеюсь, ты достигнешь того, что намеревался получить.
источник
Иногда есть возможность заблокировать приложение. Это предотвращает уничтожение или остановку этого приложения в телефоне.
Опция блокировки недоступна в самой ОС , могут помочь некоторые сторонние приложения, такие как GO Task Manager и т. Д.
источник