title: Which thread does subscriber's onNext() method run on?
body: <p>I have a use case for creating a new Observable:</p>
  
  <pre><code>Observable.create(new Observable.OnSubscribe&lt;String&gt;() {
     @Override
     public void call(Subscriber&lt;? super String&gt; subscriber) {
        final RequestFuture&lt;String&gt; futureRequest = RequestFuture.newFuture();
        try{
           //getResult() is a sync time consuming http connection
           String response = getResult();
           subscriber.onNext( response );
           subscriber.onCompleted();
           Log.e("call method","Thread is about to end" + Thread.currentThread().getId());
        }
        catch ( Exception e){
           subscriber.onError( e );
        }
  
     }
  }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread());
  </code></pre>
  
  <p>So as you can see getResult() method is a http call which is time consuming and im doing it in sync way. And I subscribe it on io thread and observe on Android's main thread.</p>
  
  <p>and when I  retrieve the observable and subscribe to it:</p>
  
  <pre><code>subscribe(new Subscriber&lt;String&gt;() {
                      @Override
                      public void onCompleted() {
                          Log.e("on completed method", "Thread is ending "+ Thread.currentThread().getId());
  
                      }
  
                      @Override
                      public void onError(Throwable e) {
                          Toast.makeText( getContext(), "failed!",Toast.LENGTH_LONG ).show();
                      }
  
                      @Override
                      public void onNext(String s) {
                          Log.e("on Next method", "Thread is about to end" + Thread.currentThread().getId());
  
                      }
                  }); 
  </code></pre>
  
  <p>the strange thing is i can see the call() method is running on a thread which its id is 372, and the onNext() method from the subscriber is running on thread 1 , i think its the UiThread from android.</p>
  
  <p>so actually how does Rxjava handle this thread change? and it proves that the subscriber in call method is not the one im using in subscribe() method?</p>