I understand the uses of this sort of approach, I can see the advantages, your Service becomes the point which serves the media items not the Activity, but I do have some concerns regarding moving the music retrieval into a Service.
In the past I have implemented my own version of a MediaBrowser in a Service, letting the Activity be the UI that requests Media Items from the Service — I came up against, which is now an obvious, problem — the binder transaction limit. As soon as you request say sizeable amount of media items and provided back in a Collection (in the case of browsing your entire music collection in a list which is a common thing to do) you get the
FAILED BINDER TRANSACTION message — can you confirm this would be the same with the MediaBrowserCompatService as the MediaItems need to be marshalled/de-marshalled using serializable or parcelable interfaces? Or whether it adopts some mechanism for avoiding this issue?