2017-05-26 4 views
1

Je cours un service Android démarré après le démarrage. Cependant, lorsque j'éteins mon téléphone, le Service (et tous les Threads connectés) ne semble pas être détruit.Service Android non détruit lors de l'arrêt

J'ai une connexion Socket fonctionnant en arrière-plan et elle n'est pas déconnectée à l'arrêt. De plus, même pas service.onDestroy() est appelé.

Est-ce normal ou est-ce dû à un autre problème?

+0

Il semble que ce devrait être le cas, mais si le téléphone est à court de piles, il pourrait ne pas avoir de chance. Voir https://stackoverflow.com/questions/10448304/handling-phone-shutdown-event-in-android –

+1

Veuillez expliquer ** précisément ** ce que vous entendez par "arrêt". Normalement, j'interpréterais cela comme signifiant "éteint", auquel cas votre connexion de socket ne fonctionnera certainement plus, car le CPU, la RAM, le WiFi, la radio cellulaire et tout le reste n'auront pas de puissance. – CommonsWare

+0

Tout comme Activity.onDestroy(), il n'y a aucune garantie que Service.onDestroy() sera appelé car tout le processus de l'application peut être tué. C'est probablement ce qui se passe quand vous fermez le téléphone, tous les processus de l'application sont simplement tués. – BladeCoder

Répondre

0

vous pouvez utiliser Reciever qui peut accéder à l'état des autres composants mobiles tels que l'état de la connectivité Internet, l'état du GPS et dès que le démarrage mobile démarrera votre service pour simple example.