Starting with the documentation:
public void setRetainInstance (boolean retain)
Control whether a fragment instance is retained across Activity re-creation (such as from a configuration change). This can only be used with fragments not in the back stack. If set, the fragment lifecycle will be slightly different when an activity is recreated:
- onDestroy() will not be called (but onDetach() still will be, because the fragment is being detached from its current activity).
- onCreate(Bundle) will not be called since the fragment is not being re-created.
- onAttach(Activity) and onActivityCreated(Bundle) will still be called.
I have some questions:
Does the fragment also retain its view, or will this be recreated on configuration change? What exactly does "retained" mean?
Will the fragment be destroyed when the user leaves the activity?
Why doesn't it work with fragments on the back stack?
Which are the use cases where it makes sense to use this method?