2011-01-16 4 views
13

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

Но для тех из нас, кто хочет увеличить наши знания, как это можно сделать в теории?

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

Я видел a, теперь устарел, разрешение PERSISTENT_ACTIVITY, но это не много.

Так в чем секрет?

ответ

40

Вы можете сделать свою услугу постоянной, если вы разрабатываете системные приложения. Эти службы будут в основном не подлежат уничтожению и будут помечены как «PERS» в выводе команды «Команда dbsys activity adb». Это не очень хорошо документировано, поэтому я быстро написал статью о Persistent services in Android ... надеюсь, это поможет некоторым людям.

Но для несистемных приложений startForeground - ваш лучший вариант.

+3

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

+0

Дополнительное примечание. Постоянный флаг работает отлично - служба НИКОГДА не убивается, даже если устройство серьезно не работает на ресурсах. –

+0

В KitKat 4.4.2 есть ошибка, которая останавливает службы без предварительного уведомления, если Google продолжает эту ошибку, мы должны сделать наши виджеты приложений установленными на Persistent – AVEbrahimi

-5

Существует абсолютно никакой возможности помешать ОС убивать ваш сервис.

+0

см., Я не на 100% уверен, что это правильно, когда я делаю «Активность dumpsys оболочки adb» Я вижу некоторые службы, помеченные как PERS ... Я предполагаю, что это настойчиво ... как они получили это метка? – ekawas

+0

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

+0

Так что я не уверен, что означает этикетка, поэтому я написал, что я предполагаю, что это означает постоянство. Итак, что делают службы, которые играют музыку? Они рискуют быть случайным отключением? Я бы тоже предположил, что это фоновая ситуация, верно? – ekawas

Смежные вопросы