3

J'ai une application et je voudrais pouvoir la redémarrer en cas d'erreur ou d'arrêt brutal/d'application. Je sais comment enregistrer BroadcastReceivers, utiliser des alarmes, etc.Android: BroadcastReceiver pour redémarrer l'application tuée/écrasée

Y a-t-il un signal que je pourrais intercepter que l'application envoie lorsqu'elle s'éteint? Ou que le système d'exploitation envoie quand une application s'arrête?

Répondre

4

Y at-il un signal que je pourrais intercepter que l'application envoie quand elle s'arrête? Ou que le> système d'exploitation envoie quand une application s'arrête?

Non et non, AFAIK.

+0

Je pensais enregistrer un récepteur pour vérifier périodiquement si mon processus est toujours en cours. Je n'arrivais pas à savoir sur quelle action l'enregistrer ... J'en ai un qui intercepte ACTION_BOOT_COMPLETED, j'envisageais d'utiliser ACTION_TIME_TICK mais apparemment vous ne pouvez pas l'enregistrer dans le fichier manifeste ... –

+0

@Tom G: " J'envisageais d'utiliser ACTION_TIME_TICK mais apparemment, vous ne pouvez pas l'enregistrer dans le fichier manifeste "- correct. Cela tuerait les performances du périphérique. Si le crash concerne une activité, n'essayez pas de le redémarrer. Si l'utilisateur le souhaite, il le redémarrera lui-même. Si le crash concerne un service de longue durée, essayez de le réécrire pour qu'il soit piloté par une alarme, ou utilisez une alarme 'AlarmManager' pour vérifier toutes les quelques minutes afin de vous assurer que tout fonctionne correctement. Si le crash concerne quelque chose déjà géré par 'AlarmManager', attendez la prochaine alarme. – CommonsWare

+0

@CommonsWare: l'incident concerne un service de longue durée. J'ai essayé ce que vous avez suggéré avec un AlarmManager. Le problème que j'avais était de déterminer ce que l'alarme devait déclencher. Je l'ai fait appeler la méthode une fois par minute pour vérifier si le processus était en cours, mais cette vérification a cessé de fonctionner dès que j'ai tué l'application. –

Questions connexes