Honestly, I'm starting to wonder if it is causing issues because there is now a barrier between Activity level memory and Service level memory. The ImageLoader class is a static object attached to the Activity, and the RemoteControlClient is using it within the DownloadService. But it is still linking to the Activity ImageLoader in order to not be keeping duplicate copies of the images in memory. Changing the service priority or registering for wakeup events shouldn't make any difference here. Because the service has a ongoing notification, it is already at the highest level possible to not be a target for starvation collection. And no matter what, bitmaps are NEVER supposed to be recycled by the system without your explicit say so, and the only time I explicitly recycle the images is if the buffer is full. The buffer I allocate is fairly large, so there is no reason it should be running into this limit quickly (while testing I usually had to go through 30-40 songs before I filled it). And once it does it should be recycling the oldest images first, not the newest. Something just seems fishy here, but for now I am going to go ahead and pull your commit anyways. It seems like a bandaid right now for a bigger issue, but it should work until I can get the newer release myself and debug what is actually going on here. Thank you for being willing to research and fix this issue, and then for being willing to share the fix