I take you never considered caching data and/or decoupling the data retrieval/processing from your UI lifecycle? That is a solution. Shoehorning fragments and misusing their lifecycle events is not. In case you haven’t noticed, you’re at best subscribing and unsubscribing at the host activity’s onCreate() and onDestroy(). At worst, as Eugenio Marletti points out, you’re doing it multiple times when there is a configuration change, or a fragment is recycled, etc. If you have a 1:1 mapping between subscribing and performing a network request, the problem won’t be solved by juggling the lifecycle of a fragment. You should subscribe to a data source that only performs request when it needs to. At that point you can freely subscribe and unsubscribe whenever, it makes no difference. See https://github.com/Dorvaryn/unidirectionalDataFlow and the associated talk here https://de.droidcon.com/en/sessions/let-it-flow-unidirectional-data-flow-architecture-android for an example of architecture that decouples things, but you can do simpler things than that if you want and still address the problem.