У меня есть несколько операций и одно обслуживание. В 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
и используйте его во втором?
Сообщение об ошибке вполне понятно: вы пропускаете ServiceConnection
, с помощью которого Android означает, что вы вызываете bindService()
, но не вызываете unbindService()
, и действие, вызвавшее bindService()
, было уничтожено. Обязательно вызовите unbindService()
в onDestroy()
, если не раньше.
что-то вроде статического Объект CounterServiceConnection в MainActivity и использовать его во втором случае один?
Нет.
Вы можете связать его от отдельного потока до тех пор, пока вы устанавливаете петлитель в этом потоке