В RxJava есть механизмы для этого, например cache();
Observable<Photo> request = service.getUserPhoto(id).cache();
Subscription sub = request.subscribe(photo -> handleUserPhoto(photo));
// перед тем, как активити пересоздаётся
sub.unsubscribe();
// когда она пересоздалась
request.subscribe(photo -> handleUserPhoto(photo));
При этом нужно сохранять где-то вне активити request, это должен быть тот же объект. Это не серебряная пуля, в разных случаях надо поступать по-разному. Для того, чтобы гарантированно отписываться при пересоздании проще использовать CompositeSubscribtion.
Подробнее здесь почитать можно:
blog.danlew.net/2014/10/08/grokking-rxjava-part-4
И, вроде бы, на хабре был перевод.