title: Observable vs. Service in Android
body: <p>I want to migrate from Android API means of asynchronous execution to Rx. Particularly I have a photo gallery in my application which frequently fetches new photos from a server as the user swipes the photos (it's based on ViewPager with lateral swiping).</p>
  
  <p>It happened like this: whenever the <code>ViewPager</code> wanted a new photo it asked its presenter (in MVP terms) to fetch it which in turn went to the model. The model sent a new intent to an <code>IntentService</code> to download the new image:
  <a href="https://i.stack.imgur.com/v3RbN.png" rel="noreferrer"><img src="https://i.stack.imgur.com/v3RbN.png" alt="How it worked with IntentService"></a></p>
  
  <p>Now it looks another way:<a href="https://i.stack.imgur.com/6p9uK.png" rel="noreferrer"><img src="https://i.stack.imgur.com/6p9uK.png" alt="How it works now, with Rx"></a></p>
  
  <p>In case of <code>IntentService</code> if we have a lot of requests to download an image these requests are queued in a single <code>IntentService</code> and processed one at a time.</p>
  
  <p>With Rx many requests to download an image yield many <code>Observable</code>s and perhaps consume a lot of memory (I haven't completed refactoring to Rx yet and hence haven't made experiments but probably someone already thought about it).</p>
  
  <p>Am I right in my misgiving? Is there a better way to do the same thing with RxAndroid?</p>