Why use Fragment#setRetainInstance(boolean)?
I find Fragment#setRetainInstance(true) confusing. Here is the Javadoc, extracted from the Android Developer API : 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