2015-12-04 3 views
-1

Я прочитал около десятка сообщений о том, как настроить независимую службу.Служба Android продолжает прекращать перезапуск приложения

В результате моих исследований и испытаний я сделал следующее:

  1. создание тега процесса на моей службе, чтобы моя службе должна работать в отдельном потоке:

    <service android:name=".Services.S_GPS" android:process="sgps"></service> 
    
  2. Установите onStartCommand для возврата START_NOT_STICKY и запустите службу на переднем плане:

-

@Override 
public int onStartCommand(Intent intent, int flags, int startId) 
{ 
    Notification notification = new Notification(); 
    startForeground(1337,notification); 
    return START_NOT_STICKY; 
} 

Даже после того, как все это, когда я прекратить или перезагрузить приложение, перезапуск службы:

W/ActivityManager: Планирование рестарт упавших служб co.myapp.app/. Services.S_GPS в 1000 мс

Мой вопрос в том, что еще мне не хватает, чтобы моя служба не отключилась при перезагрузке приложения? Я подозреваю, что все еще что-то не так, и служба работает в потоке приложения. Мне нужна моя служба для запуска на 100% независимо от приложения, мне не нужны они для общения (кроме приложения, запускающего его).

Можете ли вы посоветовать, как я могу предотвратить сбой службы, когда я закрываю или перезапускаю приложение?

Обновление Чтобы уточнить при перезагрузке, я имею в виду, когда я перестраиваю свой apk на телефон. Как только я начну свою службу, я прокомментирую код, который запускает сервис. Когда я переустанавливаю свой apk, он убивает службу (даже если нет повторного создания кода). Не может ли служба работать независимо от переустановки apk?

ответ

2

Чтобы уточнить при перезагрузке, я имею в виду, когда я перестраиваю свой apk на телефон.

Если вы удалите, обновите или переустановите приложение, все процессы, связанные с этим приложением, будут прекращены. По крайней мере для сценария обновления вы можете зарегистрировать получателя в манифесте для ACTION_PACKAGE_REPLACED, чтобы узнать и перезапустить службу, хотя я ее не пробовал.

Возможно ли, что служба не может работать независимо от переустановки apk?

Только в том случае, если это не APK, а отдельное приложение в отдельном APK.

+0

Gotcha спасибо. Я думаю, что это сделает мое тестирование сложнее, но как только код работает, все должно быть хорошо. – Aggressor

+0

Это [решение] (http://stackoverflow.com/questions/17768932/service-crashing-and-restarting#18199749) работает для меня, как и ожидалось. –

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