Is it reasonable to use an IntentService
for background MediaPlayer
playback on demand? According to the developer's guide an IntentService
lasts only as long as it is doing actually work. Considering the resulting overhead of reinitializing the MediaPlayer
everytime when I want to play a track again, it seems to be a bad Idea...
So my question is: How big is the actual resulting overhead using this kind of Service
. Would it have a perceptable impact on the system's/application's performance? Should I use my own implementation of Service
with a dedicated worker thread instead?
Is it reasonable to use an IntentService for background MediaPlayer playback on demand?
IMHO, no, because you can't really change tracks this way. Moreover, you need to know when the track completes, and you can't do that this way, except by leaking memory. Finally, it means that Android will terminate your process, possibly milliseconds after onHandleIntent()
ends, which makes for a useless music player.
Should I use my own implementation of Service with a dedicated worker thread instead?
You may not need a thread, as much of MediaPlayer
is already asynchronous. Only if you would be doing network I/O or disk I/O or something on your own might you want your own thread. But having a Service
-- and probably a foreground Service
-- is the typical approach for a music player.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With