Question: rxjava when is oncomplete called?
Answer: onComplete is called for the last element because that's when the earliest observable in the chain ( from(uris) ) has finished. It's expected that your observables emitted from flatMap will call onComplete . Once that's done (and call has returned), then the next emission from from can be worked on.