Lors de l’utilisation conjointe d’une TabActivity sur Android, et d’un service Android dans l’une ou l’autre des Activity, il faut faire attention à la manière dont on se connecte / déconnecte au(x) service(s) !
Il n’est pas rare d’obtenir une erreur du style :
WARN/ActivityManager(784): Binding with unknown activity: android.os.BinderProxy@6545646
La solution consiste à utiliser :
getApplicationContext().bindService(...); // et getApplicationContext().unbindService(...);
plutôt que :
bindService(...); // et unbindService(...);
Ce serait dû à un bug du SDK Android. Mais personnellement, cela me semble assez logique qu’il y ait à faire attention à qui (l’Activity parente, ou bien les Activity des onglets) « bind » et « unbind » les services puisque l’on a plusieurs Activity en même temps.
Personnellement, chez moi, ça rendait mes Activity quasiment inopérante : impossible de cliquer sur des boutons, d’accéder aux services, bref, la galère !
Plus d’informations
- Why are my ServiceConnection methods never executed? – StackOverflow
- Issue 2483: TabSpec activity is unable to bind to a service – discussion autour du bug