Android: le Service s'arrête lorsque l'Activité est fermé
Si je comprends bien,
bindService() avec BIND_AUTO_CREATE va démarrer un service et ne seront pas mourir jusqu'à ce que toutes les liaisons sont toutes unbinded.
Mais si je bindService(BIND_AUTO_CREATE) à onCreate() et appuyez sur la touche retour pour fermer le
l'activité, les appels de service onDestroy() et meurt aussi.
Je n'appelle pas unbind() à tout moment.
Est-ce que cela signifie lorsque l'Activité a été détruit, la liaison a été détruite aussi, et le service est détruit aussi?
Que faire si je veux que le service soit toujours en cours d'exécution, au même temps lorsque l'activité commence
Je veux lier afin que je puisse accéder à ce service?
Si je l'appelle StartService() et puis bindService() à onCreate(), il va redémarrer le service à chaque lancement de l'Activité. (Je ne veux pas).
J'ai donc ai-je pu démarrer le service une fois et puis de lier la prochaine fois, je lancement de l'activité?
OriginalL'auteur jclova | 2010-11-23
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser
startService
afin que le service n'est pas interrompu lorsque l'activité qui se lie à elle est détruite.startService
sera assurez-vous que le service est en cours d'exécution, même si votre activité est détruit (sauf s'il est arrêté en raison de contraintes de mémoire). Lorsque vous appelezstartService
, leonStart
méthode est appelée sur le service. Il ne redémarre pas (arrêter et démarrer à nouveau) le service. Donc, cela dépend de comment mettre en œuvre leonStart
méthode sur le Service. Le Service deonCreate
, cependant, n'est appelée qu'une fois, de sorte que vous pouvez initialiser les choses.J'appelle bindService() avec BIND_AUTO_CREATE : le Service s'arrête lorsque l'Activité est fermé, je les appelle startService() , ça ok. thx.
peut-u s'il vous plaît élaborer peu à ce sujet ? je m en face d'un problème avec le service
OriginalL'auteur Randy Sugianto 'Yuku'
J'ai trouvé une solution!
Le problème, c'est quand vous fermez votre activité et de votre service n'est pas configuré comme un premier plan de service, le système android de reconnaître qu'il est inutilisée et la fermer.
voici un exemple où j'ai ajouté une notification :
(Un premier plan de services est un service qui fait quelque chose que l'utilisateur est activement conscient de (telles que la lecture de la musique), et doit apparaître à l'utilisateur comme une notification. C'est pourquoi nous avons créer la notification ici)
startForeground()
méthode ?Un premier plan de Service dans android est un service de base qui continue de fonctionner même après que la demande principale est fermée. il faut (int id, Notification de Notification) en tant que paramètres.
Pouvez-vous partager son code ? Mise à jour dans votre réponse si vous le pouvez.
OriginalL'auteur Khalil Kitar
vous pouvez le faire avec BroadcastReceivers. vous trouverez beaucoup de choses sur google comment les utiliser
OriginalL'auteur marisxanis