Как сделать так, чтобы служба не закрывалась?

Я использую последнюю стандартную прошивку для своего телефона (SGS3, вариант Vodafone, хотя и с рутом), и я установил программу отслеживания GPS в реальном времени , которая все время остается на панели задач в качестве службы (и я этого хочу).

Когда я загружаю некоторые установленные мной игры, требующие оперативной памяти, иногда эта служба умирает (вместе с другими процессами, которые меня не волнуют), потому что Android пытается автоматически освободить память (у меня нет установленного убийцы задач).

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

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

Ответы (2)

Попробуйте Auto Memory Manager и установите более низкие значения minfree на вторичном сервере, чтобы у него было меньше шансов убить службы. Вы также можете увеличить приоритет службы OOM до 0 (более низкие значения означают меньшую вероятность быть убитым), что также является частью приложения.

Из часто задаваемых вопросов : я установил приоритет приложения на «поддержание активности», но через некоторое время он снова меняется. Что происходит?? К сожалению, это вне моего контроля. У меня есть возможность изменить приоритеты, но, к сожалению, ядро ​​по-прежнему управляет приоритетами и устанавливает приоритеты так, как считает нужным. Поскольку мы никогда не собирались менять приоритеты вручную, я думаю, что не может быть никаких условий, чтобы придерживаться настраиваемых вручную приоритетов.
Не все приложения идеальны, и у Android есть ограничения. Но все же я не знаю другого приложения, которое могло бы эффективно настроить убийцу памяти, как это.
Я знаю как минимум еще одного, у которого есть эта способность (с таким же ограничением). Он называется AutoKiller Memory Optimizer . К сожалению, это не дает решения моей проблемы. Я подожду еще немного, если кто-то знает что-то, чего не знаем мы с вами, прежде чем принять ваш ответ. На данный момент, как вы можете видеть, я только что проголосовал за это.

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

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

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