2011-12-22 3 views
5

Я хочу перезагрузить службу автоматически, если приложение сработает. Мои идеи:Автоматический перезапуск службы при сбоях apk

1: BroadcastReceiver когда APK аварий и автоматический перезапуск Службы

if("android.intent.action.SOMETHING".equals(intent.getAction())) 
    { 
    Intent serviceLauncher = new Intent(context, Service.class); 
    context.startService(serviceLauncher); 
    } 

2: с uncaughtException(), но я не знаю, чтобы справиться с этим

ответ

5

Я думаю, что вы только нужно возвращать START_STICKY в onStartCommand() службы

+0

Я постараюсь сделать это как можно быстрее и дать вам отчет –

+0

Я просто прочитал описание на http://developer.android.com/reference/android/app/Service.html#START_STICKY, и я думаю, что это то, что я ну, спасибо –

+0

Я думаю, что START_STICKY только убедитесь, что служба запускается, но когда работает служба, она не перезапускает его после чарша, не так ли? –

0

Do вы хотите, чтобы ваша служба ДЕЙСТВИТЕЛЬНО перезапустилась или вы хотите, чтобы ваша служба продолжалась? Я думаю, что служба не останавливается, когда приложение разбивается, Служба отделена от приложения, которое его создает.

+0

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

+0

Я думаю, что единственное решение - это изолировать место, где может произойти сбой вашего приложения (авария приложения не срабатывает) и использовать try-catch. – VinceFR

0

Вы можете использовать setUncaughtExceptionHandler

При получении события вы можете снова запустить службу,

Другой вариант, который мог бы работать (Вы должны попробовать это), звонит StartService по методу OnDestroy.

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