Найдено после публикации:
http://code.google.com/p/android/issues/detail?id=2665
http://code.google.com/p/android/issues/detail?id=2483
MyApp - first Activity that calls startService();
AwesomeService - background Service that starts a "connection" thread
ConnectedActivity - Activity with code to handle connection and service binding
MyAppActivity - Tabbed Activity
TabAActivity - Tab Activity
У меня есть базовый класс Activity, который называется ConnectedActivity. В этом классе я выполняю привязку к фоновой службе, которая подключена к удаленной системе. ConnectedActivity также имеет методы-наблюдатели, которые фиксируют изменения в соединении и другие уведомления от службы.
Для других моих действий, которые необходимо «подключить», я просто расширяю ConnectedActivity.
Я разработал операцию с вкладками, для которой вкладки также являются активностями. Для работы с вкладками и каждой вкладки мне нужно расширить ConnectedActivity.
Проблема, с которой я столкнулся, заключается в том, что при загрузке действия с вкладками (и действий с вкладками) это единственное действие, которое привязывается к Сервису. Действия с вкладками не привязываются к Сервису.
Ниже serviceBound () - это обратный вызов, который я реализовал в классе ConnectedActivity, чтобы классы, расширяющие ConntectedActivity, могли предпринимать действия после привязки службы. Из моего файла журнала видно, что только MyAppActivity фактически является обязательным.
Возможно ли привязать несколько Сервисов к Сервису?
РЕДАКТИРОВАТЬ: нашел это здесь
Несколько клиентов могут подключиться к услуге одновременно. Однако система вызывает метод onBind () вашей> службы для получения IBinder только тогда, когда первый клиент связывается. Затем система доставляет тот же IBinder всем дополнительным клиентам, которые связываются, без повторного вызова onBind ()
Так что теперь мой реальный вопрос становится ... означает ли это, что обратные вызовы (onServiceConnected () и onServiceDisconnected) не вызываются во "втором" действии, которое связывает?
КОНЕЦ РЕДАКТИРОВАНИЯ:
12-31 02:40:00.625: I/MyApp(31345): onCreate(Bundle savedInstanceState)
12-31 02:40:00.705: I/AwesomeService(31345): onCreate()
12-31 02:40:00.705: I/AwesomeService(31345): onStartCommand(Intent intent, int flags, int startId)
12-31 02:40:00.725: I/ConnectedActivity(31345): onCreate(Bundle savedInstanceState)
12-31 02:40:00.725: I/MyAppActivity(31345): onCreate(Bundle savedInstanceState)
12-31 02:40:00.836: I/ConnectedActivity(31345): onCreate(Bundle savedInstanceState)
12-31 02:40:00.836: I/TabAActivity(31345): onCreate(Bundle savedInstanceState)
12-31 02:40:00.896: I/ConnectedActivity(31345): onStart()
12-31 02:40:00.896: I/TabAActivity(31345): onStart()
12-31 02:40:00.956: I/ConnectedActivity(31345): onStart()
12-31 02:40:00.966: I/MyAppActivity(31345): onStart()
12-31 02:40:00.966: I/ConnectedActivity(31345): onResume()
12-31 02:40:00.966: I/MyAppActivity(31345): onResume()
12-31 02:40:00.966: I/ConnectedActivity(31345): onResume()
12-31 02:40:00.966: I/TabAActivity(31345): onResume()
12-31 02:40:00.976: I/AwesomeService(31345): onBind(Intent intent)
12-31 02:40:01.056: I/ConnectedActivity(31345): onServiceConnected(ComponentName className, IBinder service)
12-31 02:40:01.056: I/AwesomeService(31345): LocalBinder:getService()
12-31 02:40:01.056: I/MyAppActivity(31345): serviceBound()
Я также надеялся увидеть:
AwesomeService(31345): onBind(Intent intent)
ConnectedActivity(31345): onServiceConnected(ComponentName className, IBinder service)
AwesomeService(31345): LocalBinder:getService()
TabAActivity(31345): serviceBound()