2016-03-04 6 views
0

У меня есть фоновое обслуживание, которое работает в фоновом режиме для отслеживания экрана вкл и выкл. Событий. его начала, как показано ниже:Как сохранить мой фоновый сервис активным, когда система андроида убивает мое приложение?

Intent intentService = new Intent(context, UnlockdService.class); 
context.startService(intentService); 

И она возвращается Service.START_REDELIVER_INTENT в методе onStartCommand. Но все же, когда система андроидов убивает приложение, эта нить также умирает.

Как я могу предотвратить это?

+0

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

ответ

0

Решение было таким простым: возвращение START_STICKY от onStartCommand() выполнило эту работу.

0

Я думаю, что это лучшее решение для использования BroadcastReceiver вместо службы. В вашем onReceive вы могли бы начать свой сервис, чтобы выполнить свою работу, а затем услуга может сама закончиться - возможно, вы можете использовать IntentService, если ваша работа будет одним выстрелом.

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

+0

Такое глупое решение .. было так просто ... START_STICKY выполнил задание: D –