RxLifecycle
Lifecycle handling APIs for Android apps using RxJava
...Then you use RxLifecycle to bind a sequence to that lifecycle. It assumes you want to end the sequence in the opposing lifecycle event - e.g., if subscribing during start, it will terminate on stop. If you subscribe after pause, it will terminate at the next destruction event (e.g., pasue will terminate in stop). RxLifecycle does not actually unsubscribe the sequence. Instead it terminates the sequence. The way in which it does so varies based on the type. If a sequence requires the Subscription.unsubscribe() behavior, then it is suggested that you manually handle the Subscription yourself and call unsubscribe() when appropriate.