8
votes

Comment redémarrer un service tué automatiquement?

Lorsqu'un service a été tué, comment le redémarrer automatiquement?

parfois sans même appeler ondestroy ()


2 commentaires

Si votre service a été tué, c'est parce que l'utilisateur l'a tué ou que le système d'exploitation était faible à la mémoire. Cela signifie que vous ne devriez probablement pas le redémarrer. Vous ne devriez pas laisser de longs services de course comme ça


Merci de réponse, mais il y a des services, quand je les ai tués, ils se redémarreront rapidement.


3 Réponses :


0
votes

Si votre service est tué, le système essaiera de le redémarrer plus tard. Lire Plus .


0 commentaires

3
votes

remplace le OnStartCommand () et donner start_sticky ou start_redeliver_intent (dépend de vos besoins) comme valeur de retour. Le système veillera ensuite à redémarrer votre service jusqu'à ce que vous arrêtez explicitement le service.

http://developer.android.com/reference/andrroid/ app / service.html # start_redeliver_intent

http://developer.android.com/reference/andrroid/ app / service.html # start_sticky


1 commentaires

Je fais start_sticky. Travailler bien à Nexus 5 et redémarrer le service. Mais dans le service Xiaomi est tué dès que ma demande est tuée.



6
votes

J'ai hérité d'une réserve, je devais donc être doux. Cela a fonctionné pour moi lorsque je remplace Onstartcommand () mais xxx

c'est-à-dire, laissez le parent faire ce qu'il devrait et retourner start_sticky. >


2 commentaires

Je fais même. Travailler bien à Nexus 5. Mais dans le service Xiaomi est tué dès que ma demande est tuée.


Dans les cas incorrects, vous pouvez commencer une réveil pour vous assurer que votre service est en direct. Méfiez-vous de l'utiliser trop souvent, comme étant le réveil, la CPU coûte la durée de vie de la batterie. Avez-vous une application qui ravive Swipe pour rejeter?