Comment rester connecté à un Androïde de service entre plusieurs activités?
J'ai de multiples activités et un service. Dans MainActivity
j'ai réussi a se connecter au service (à l'aide d'une classe qui implémente ServiceConnection
+ bindService()
+ startService()
) mais quand j'essaie d'appliquer la même méthode dans d'autres activités, je vois dans le LogCat une erreur:
01-15 22:29:37.438: ERROR/ActivityThread(12206): android.app.ServiceConnectionLeaked:
Activity com.app.liviu.simpleMusicPlayer.PlaylistActivity has leaked ServiceConnection
com.app.liviu.simpleMusicPlayer.PlaylistActivity$CounterServiceConnection@43713c90
that was originally bound here.
Est-il possible de se connecter à un service dans un autre sens: quelque chose comme faire statiques mon CounterServiceConnection
objet dans MainActivity
et de l'utiliser dans le second?
OriginalL'auteur Ungureanu Liviu | 2010-01-15
Vous devez vous connecter pour publier un commentaire.
Le message d'erreur est assez explicite: vous êtes à la fuite d'un
ServiceConnection
, par Android qui signifie que vous appelezbindService()
mais ne font pas appel àunbindService()
, et l'activité qui a appelébindService()
a été détruit. Assurez-vous que vous appelezunbindService()
dansonDestroy()
, si pas plus tôt.Pas.
J'ai eu ce message d'erreur en appelant bindService, puis bindService à nouveau dans la même Activité
Je fais appel unbindService (ce) onDestroy. Pour lier je fais appel
boolean bindResult = bindService(new Intent( Consts.MARKET_BILLING_SERVICE_ACTION), this, // ServiceConnection. Context.BIND_AUTO_CREATE)
. Que pouvais-je fait de mal ?OriginalL'auteur CommonsWare
Vous pouvez le lier à partir d'un thread séparé aussi longtemps que vous installez un looper dans ce thread
OriginalL'auteur Will