2010-01-15 25 views
8

Tôi có nhiều hoạt động và một dịch vụ. Trong MainActivity tôi thành công kết nối với dịch vụ (sử dụng một lớp mà thực hiện ServiceConnection + bindService() + startService()) nhưng khi tôi cố gắng áp dụng cùng một phương pháp trong hoạt động khác mà tôi nhìn thấy trong LogCat một lỗi:Cách duy trì kết nối với dịch vụ Android giữa nhiều hoạt động?

01-15 22:29:37.438: ERROR/ActivityThread(12206): android.app.ServiceConnectionLeaked: 
    Activity com.app.liviu.simpleMusicPlayer.PlaylistActivity has leaked ServiceConnection 
    com.app.li[email protected]43713c90 
    that was originally bound here. 

Có thể kết nối với một dịch vụ theo cách khác: một cái gì đó giống như để làm cho đối tượng CounterServiceConnection tĩnh của tôi trong MainActivity và sử dụng nó trong chế độ thứ hai?

Trả lời

15

Các thông báo lỗi là khá tự giải thích: bạn đang bị rò rỉ một ServiceConnection, mà Android có nghĩa là bạn đang gọi bindService() nhưng không gọi số unbindService() và hoạt động được gọi là bindService() đã bị hủy. Đảm bảo bạn gọi unbindService() trong onDestroy(), nếu không sớm hơn.

something like to make static my CounterServiceConnection object in MainActivity and use it in the seconde one?

số

+3

này đang nói gì lỗi là, không làm thế nào để giải quyết vấn đề – Will

+0

tôi đã thông báo lỗi này bằng cách gọi bindService, sau đó bindService một lần nữa trong Hoạt động cùng – Blundell

+0

tôi kêu gọi unbindService (điều này) onDestroy. Để ràng buộc tôi kêu gọi 'boolean bindResult = bindService (Ý định mới (\t \t \t \t \t Consts.MARKET_BILLING_SERVICE_ACTION), điều này, // ServiceConnection. \t \t \t \t \t Context.BIND_AUTO_CREATE) '. Tôi có thể làm gì sai? – Siddharth

0

Bạn có thể gắn nó từ một thread riêng biệt chừng nào bạn cài đặt một looper trong chủ đề đó

Các vấn đề liên quan