Как оставаться на связи с сервисом Android между несколькими действиями? - PullRequest
8 голосов
/ 16 января 2010

У меня есть несколько мероприятий и один сервис. В MainActivity я успешно подключаюсь к сервису (используя класс, который реализует ServiceConnection + bindService() + startService()), но когда я пытаюсь применить тот же метод в другой деятельности, я вижу в LogCat ошибку:

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.

Можно ли подключиться к услуге другим способом: что-то вроде создания статического объекта CounterServiceConnection в MainActivity и использования его во втором?

Ответы [ 2 ]

15 голосов
/ 16 января 2010

Сообщение об ошибке довольно очевидно: вы пропускаете ServiceConnection, под которым Android означает, что вы звоните bindService(), но не вызываете unbindService(), а действие, которое вызывало bindService(), было уничтожено. Обязательно позвоните unbindService() в onDestroy(), если не раньше.

что-то вроде статического CounterServiceConnection объект в MainActivity и использовать его во втором один

номер

0 голосов
/ 16 января 2010

Вы можете связать его из отдельного потока, если вы установите петлитель в этом потоке

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...