2011-12-22 12 views
5

Quiero reiniciar mi servicio automáticamente si la aplicación falla. Mis ideas son:Reiniciar automáticamente un servicio cuando el apk falla

1: un BroadcastReceiver cuando se bloquea el apk y el reinicio automático del Servicio

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

2: con un uncaughtException(), pero no sé para manejar esa

Respuesta

5

creo que sólo se necesita vuelta START_STICKY en onStartCommand() del Servicio

+0

intentaré esto lo más rápido que pueda y le daré un informe –

+0

acabo de leer la descripción en http://developer.android.com/reference/android/app/Service.html#START_STICKY y creo que esto es lo que Necesito, gracias –

+0

Creo que START_STICKY solo se asegura de que el servicio se inicie pero cuando el servicio se está ejecutando no lo reinicia después de un choque, ¿podría ser? –

0

Do ¿Desea que su servicio se reinicie REALMENTE o desea que su servicio continúe? Creo que el servicio no se detiene cuando la aplicación se bloquea, un Servicio es independiente de la aplicación que lo crea.

+0

hmm tal vez mi descripción es un poco mal, deseo reiniciar el servicio cuando baja. –

+0

Creo que la única solución es aislar el lugar donde su aplicación puede bloquearse (el bloqueo de una aplicación no genera una acción) y usar un try-catch. – VinceFR

0

Puede utilizar setUncaughtExceptionHandler

Al recibir el evento puede iniciar el servicio de nuevo,

Otra opción, que podría funcionar (Es necesario probarlo), está llamando StartService en el método OnDestroy.

Cuestiones relacionadas