2012-10-26 26 views
6

Xin chào, tôi cần một phiên bản MediaPlayer để chạy ẩn nên tôi bắt đầu sử dụng Dịch vụ.MediaPlayer trong chuỗi riêng biệt bằng Dịch vụ hoặc IntentService

Mọi thứ hoạt động tốt nhưng tôi nhận được ANR (ứng dụng không phản hồi) sau một thời gian, ngay cả khi giao diện người dùng hoạt động hoàn hảo. Đủ công bằng, tôi biết Dịch vụ vẫn đang chạy trên luồng chính để ANR có ý nghĩa.

Vì vậy, tôi đã thử sử dụng IntentService, sẽ sinh ra chuỗi của riêng mình nhưng tôi không nhận được gì ngoài việc bị nhức đầu. IntentService có vẻ ok khi các công nhân độc lập nhưng không phải là trường hợp ở đây vì tôi cần gọi phương thức startService (intent) từ ứng dụng chính mỗi khi tôi cần thay đổi bản nhạc và tôi không muốn kết thúc với nhiều phiên bản MediaPlayer chơi trên đầu trang của mỗi khác ..

Tôi cũng thấy một gợi ý gợi ý sử dụng một Chủ đề bên trong một Dịch vụ. làm thế nào để tôi làm điều đó với Media Player? Nên khai báo được trong chủ đề đó hoặc chỉ là "chuẩn bị/bắt đầu, vv"? Từ những gì tôi thấy rằng dường như không hoạt động nhưng tôi có thể chỉ thực hiện sai

Bất kỳ gợi ý nào được đánh giá cao, có thể với một ví dụ rất đơn giản.

cổ vũ

+0

hey Tôi sẽ nói dối để biết những gì bạn đã làm bạn quyết định cho tôi có cùng một trường hợp sử dụng chính xác và tôi không chắc chắn nên sử dụng lớp nào nếu IntentService hoặc chỉ Dịch vụ. – commonSenseCode

Trả lời

4

tôi khuyên bạn đọc tài liệu đào tạo ở đây: http://developer.android.com/guide/components/services.html

Đây là thực sự hữu ích cho tôi. Và sau đó ứng dụng NPR phát trực tuyến âm thanh là nguồn mở, vì vậy hãy kiểm tra dịch vụ của chúng tại đây: http://code.google.com/p/npr-android-app/source/browse/Npr/src/org/npr/android/news/PlaybackService.java

Đọc cả hai, tôi khuyên bạn nên sử dụng Dịch vụ và tự xử lý chủ đề. Tôi chưa từng làm việc với IntentService, nhưng từ trải nghiệm của bạn, có vẻ như đó là lớp sai để đối phó với phát trực tuyến nhạc. Hy vọng rằng sẽ giúp!

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