6

İstek üzerine MediaPlayer çalma için IntentService kullanımı makul midir? developer's guide'a göre, bir IntentService, gerçekten çalıştığı sürece devam eder. Service bu tür kullanarak fiili çıkan havai ne kadar büyük: Ben yine bir parçayı çalmak istediğinizde MediaPlayer her şey reinitializing elde edilen yükü düşünüldüğünde MediaPlayer oynatımı için IntentService kullanımı

Benim soru yani ... kötü bir fikir gibi görünüyor. Sistemin/uygulamanın performansı üzerinde hissedilir bir etkisi olur mu? Onun yerine özel bir çalışan iş parçacığı ile Service kendi uygulamamı kullanmalı mıyım?

cevap

11

İsteğe bağlı arka plan MediaPlayer oynatımı için IntentService kullanmak makul midir?

IMHO, hayır, çünkü izleri gerçekten bu şekilde değiştiremezsiniz. Üstelik, pistin ne zaman tamamlandığını bilmeniz gerekiyor ve bunu bellekte sızıntı yapmak dışında yapamazsınız. Son olarak, Android'in sizin işleminizi sona erdireceği anlamına gelir, muhtemelen onHandleIntent() bittikten sonra milisaniye olur ve bu da işe yaramaz bir müzik çalar anlamına gelir.

Kendi Hizmet Uyguımı yerine özel bir çalışan iş parçacığı kullanmalı mıyım?

MediaPlayer zaten eşzamansız olduğundan, bir iş parçacığına gerek duymayabilirsiniz. Sadece ağ G/Ç veya disk G/Ç yapıyorsanız veya kendi başınıza bir şeyler yapıyorsanız kendi iş parçanızı isteyebilirsiniz. Ancak bir Service - ve muhtemelen bir ön plana sahip olan Service - bir müzik çalar için tipik bir yaklaşımdır.

+1

Buna göre: [makale] (http://developer.android.com/reference/android/media/MediaPlayer.html) 'start()' eşzamansız değil. Bu arayanın iş parçasını engellemez mi? – wodzu

+1

@ Paweł: Diyagram yanlış. 'start()' eşzamansızdır. – CommonsWare

+0

@CommonsWare Ne zaman servisim bu arada bir servisi oynuyorsa, tekrar tekrar arandığında, bazen bir ve bazen birden fazla sesi tek tek oynamalıyım, sonra ne önerirsiniz? Medya oynatıcısı üzerinde denetime ihtiyacım yok, duraklatmaya veya aramaya gerek yok demektir. OnHandleIntent işleyebilir. Ancak hizmette onStartCommand'da bu amaçlarla el ile işlem yapmalıyım. –

İlgili konular