Сервис, который выживает в Task Killers, например, Pandora / Как на самом деле работают Сервисы? - PullRequest
0 голосов
/ 05 февраля 2011

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

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

  1. Перечислены ли службы в Advanced Task Killer? Или просто деятельность?

  2. Что такое со службами, которые всегда работают (Настройки -> Приложения -> Запуск служб), такими как Skype, Swype и т. Д.? Я понимаю, что Skype может быть процессом с более высокими разрешениями, чем любые приложения Market (например, упакованные в ядро ​​Verizon или HTC), но я установил Swype (бета-версия для Incredible). Так как же это всегда работает в фоновом режиме? Более того - эти предметы не перечислены в Advanced Task Killer.

  3. Как работает Пандора. Он продолжает работать, даже когда вы Задача Убить его? Кроме того, он не запускается заново, потому что музыка продолжает играть гладко.

В идеале я хотел бы создать приложение Pandora-esque, в котором бы пользовательская простота нажимала кнопку ВЫКЛ, но оно выживет, вызывая счастливых убийц задач, таких как я. Это будет функция, о которой пользователи знают / с которой согласны.

1 Ответ

3 голосов
/ 05 февраля 2011

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

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

Так как же это всегда работает в фоновом режиме?

Swype - редактор методов ввода. Таким образом, даже если что-то отключит, вскоре после этого оно снова запустится для обслуживания EditText виджетов. Я полагаю, что Android может не беспокоиться о закрытии этой службы, поскольку вполне вероятно, что она понадобится снова в короткие сроки, но это только предположение.

Как работает Пандора. Он продолжает работать, даже когда вы убиваете его?

Убийцы задач были отключены на Android 2.2, поэтому, возможно, проблема в том, что убийца задач просто не работает на вашем устройстве.

Кроме того, вам придется обратиться к авторам Pandora или Advanced Task Killer, ни один из которых не обязательно отслеживает StackOverflow.

В идеале я хотел бы создать приложение Pandora-esque, в котором бы пользовательская простота нажимала кнопку ВЫКЛЮЧЕНО, но оно выживет и вызовет счастливых убийц задач, таких как я. Это будет функция, о которой пользователи знают / с которой согласятся.

Используйте startForeground(), чтобы компромисс с Android не закрывал вас (что в противном случае произойдет) с отображением Notification, поэтому пользователь помнит: «О, да, я согласился позволить этой службе работать бесконечно, потому что она постоянно приносит ценность для меня, а не просто продукт какого-то неаккуратного кодера, который не удосужился использовать AlarmManager ". Кроме того, обычно Notification предоставляет пользователю легкий доступ к вышеупомянутой кнопке OFF.

...