Я создаю приложение, в котором я хотел бы, чтобы служба работала бесконечно.
Везде, где этого можно избежать, это не рекомендуется. По умолчанию это не работает, поскольку с каждым новым выпуском Android становится все более и более агрессивным в отношении прекращения этой практики для служб не переднего плана (смотрите ниже).
Так как же это всегда работает в фоновом режиме?
Swype - редактор методов ввода. Таким образом, даже если что-то отключит, вскоре после этого оно снова запустится для обслуживания EditText
виджетов. Я полагаю, что Android может не беспокоиться о закрытии этой службы, поскольку вполне вероятно, что она понадобится снова в короткие сроки, но это только предположение.
Как работает Пандора. Он продолжает работать, даже когда вы убиваете его?
Убийцы задач были отключены на Android 2.2, поэтому, возможно, проблема в том, что убийца задач просто не работает на вашем устройстве.
Кроме того, вам придется обратиться к авторам Pandora или Advanced Task Killer, ни один из которых не обязательно отслеживает StackOverflow.
В идеале я хотел бы создать приложение Pandora-esque, в котором бы пользовательская простота нажимала кнопку ВЫКЛЮЧЕНО, но оно выживет и вызовет счастливых убийц задач, таких как я. Это будет функция, о которой пользователи знают / с которой согласятся.
Используйте startForeground()
, чтобы компромисс с Android не закрывал вас (что в противном случае произойдет) с отображением Notification
, поэтому пользователь помнит: «О, да, я согласился позволить этой службе работать бесконечно, потому что она постоянно приносит ценность для меня, а не просто продукт какого-то неаккуратного кодера, который не удосужился использовать AlarmManager
". Кроме того, обычно Notification
предоставляет пользователю легкий доступ к вышеупомянутой кнопке OFF.