Assuming what have been said here, it's the developer's responsibility to keep the component instance in order to implement their own scope logic (since a scoped method will return the same instance for a given component).
What's the clean way to keep this component reference through the activity lifecycle ?
Example : You're implementing the MVP pattern, so you need a Presenter within your Activity. This Presenter can do a network operation to download items. When the device rotate, your Activity is being destroyed and recreated but you would like to keep the network operation going and just get back the pre-rotation presenter.
Scoping the Component providing the Presenter with a custom PerActivity scope is the solution, so you have to keep the Component instance through this rotation to get injected the same instance of Presenter as the first launch of the Activity.
How can we deal with this ? I thought of a kind of Component Cache (like a HashMap ?) that could be provided by an Application Component living inside the Application class.