2011-11-17 3 views
1

Existe-t-il un moyen de détecter le redémarrage de mon service Android en cas de panne? Le service lui-même peut-il être informé après le redémarrage? Ou les applications clientes peuvent-elles obtenir cette information?Détecter un "Planification du redémarrage du service défaillant" dans Android

J'ai essayé d'utiliser l'indicateur START_FLAG_REDELIVERY dans le service, mais je ne suis pas sûr de son fonctionnement.

Répondre

0

Détecter lorsque le service redémarre? Cela pourrait être fait en analysant le logcat, manuellement ou par programmation. En fonction de ce qui provoque le "crash", il peut y avoir d'autres façons.

Le service peut-il se connaître après avoir été redémarré? Oui, grâce à l'intention redistribuée reçue dans la fonction onCreate.

1

De l'onStartCommand(Intent intent, int flags, int startId) documentation:

Paramètres

intention - L'intention fournie à startService (intention), en tant que données. Cela peut être nul si le service est en cours de redémarrage après que son processus a disparu et qu'il ait précédemment renvoyé autre chose que START_STICKY_COMPATIBILITY.

Donc, si vous le service est redémarrée, quelle qu'en soit la raison (et il est commencé collant), il sera relancé avec une intention nulle.

Questions connexes