Shorter Explanation(Considering you are not using fragments
):
- Creation of activity is
OnCreate
,OnStart
,OnResume
- When you rotate the screen
OnPause
,OnStop
,OnDestroy
- Again
OnCreate
,OnStart
,OnResume
because activity is destroyed and recreated onOrientation change
Thus, if you won't rotate OnCreate
,OnStart
,OnResume
is not fired for the second time !
Understand the Which events are executed and when:
Have a look at one of my answers i posted in stackoverflow - Click Here
A Use case Example(Considering you are using fragments
):
Sample Project:
I have an opensource project Download it here and execute it and see the log to understand >the sequence of events executes one after another(I have fragment also in this project exclude the >fragment logs if you don't need it)
Project Observations
If the path is Activity
-FragmentOne
and change the orientation for the first time then the events fired are as follows
MainActivity-onCreate
-
FragmentOne-onAttach
-
FragmentOne-onCreate
-
FragmentOne-onCreateView
-
FragmentOne-onActivityCreated
-
FragmentOne-onStart
-
FragmentOne-onResume
If the path is Activity
-FragmentOne
-orientationchange
and change the orientation for the first time then the events fired are as follows
MainActivity-onCreate
-
FragmentOne-onAttach
-
FragmentOne-onCreate
-
FragmentOne-onCreateView
-
FragmentOne-onActivityCreated
-
FragmentOne-onStart
-
FragmentOne-onResume
-
FragmentOne-onPause
-
FragmentOne-onSaveInstanceState
-
FragmentOne-onStop
-
FragmentOne-onDestroy
-
FragmentOne-onDetach
-
MainActivity-onCreate
-
FragmentOne-onAttach
-
FragmentOne-onCreate
-
FragmentOne-onCreateView
-
FragmentOne-onActivityCreated
-
FragmentOne-onStart
-
FragmentOne-onResume
- If the path is
Activity
-FragmentOne
-orientationchange
-orientationchange
and change the orientation for the first time then the events fired are as follows
MainActivity-onCreate
-
FragmentOne-onAttach
-
FragmentOne-onCreate
-
FragmentOne-onCreateView
-
FragmentOne-onActivityCreated
-
FragmentOne-onStart
-
FragmentOne-onResume
-
FragmentOne-onPause
-
FragmentOne-onSaveInstanceState
-
FragmentOne-onStop
-
FragmentOne-onDestroy
-
FragmentOne-onDetach
-
MainActivity-onCreate
-
FragmentOne-onAttach
-
FragmentOne-onCreate
-
FragmentOne-onCreateView
-
FragmentOne-onActivityCreated
-
FragmentOne-onStart
-
FragmentOne-onResume
-
FragmentOne-onPause
-
FragmentOne-onSaveInstanceState
-
FragmentOne-onStop
-
FragmentOne-onDestroy
-
FragmentOne-onDetach
-
MainActivity-onCreate
-
FragmentOne-onAttach
-
FragmentOne-onCreate
-
FragmentOne-onCreateView
-
FragmentOne-onActivityCreated
-
FragmentOne-onStart
-
FragmentOne-onResume
- If the path is
Activity
-FragmentOne
-orientationchange
-orientationchange
-FragmentTwo
and change the orientation for the first time then the events fired are as follows
MainActivity-onCreate
-
FragmentOne-onAttach
-
FragmentOne-onCreate
-
FragmentOne-onCreateView
-
FragmentOne-onActivityCreated
-
FragmentOne-onStart
-
FragmentOne-onResume
-
FragmentOne-onPause
-
FragmentOne-onSaveInstanceState
-
FragmentOne-onStop
-
FragmentOne-onDestroy
-
FragmentOne-onDetach
-
MainActivity-onCreate
-
FragmentOne-onAttach
-
FragmentOne-onCreate
-
FragmentOne-onCreateView
-
FragmentOne-onActivityCreated
-
FragmentOne-onStart
-
FragmentOne-onResume
-
FragmentOne-onPause
-
FragmentOne-onSaveInstanceState
-
FragmentOne-onStop
-
FragmentOne-onDestroy
-
FragmentOne-onDetach
-
MainActivity-onCreate
-
FragmentOne-onAttach
-
FragmentOne-onCreate
-
FragmentOne-onCreateView
-
FragmentOne-onActivityCreated
-
FragmentOne-onStart
-
FragmentOne-onResume
-
FragmentOne-onStop
-
FragmentOne-onAttach
-
FragmentOne-onCreate
-
FragmentOne-onCreateView
-
FragmentTwo-onActivityCreated
-
FragmentOne-onStart
-
FragmentOne-onResume
- If the path is
Activity
-FragmentOne
-orientationchange
-orientationchange
-FragmentTwo
-orientationchange
and change the orientation for the first time then the events fired are as follows
MainActivity-onCreate
-
FragmentOne-onAttach
-
FragmentOne-onCreate
-
FragmentOne-onCreateView
-
FragmentOne-onActivityCreated
-
FragmentOne-onStart
-
FragmentOne-onResume
-
FragmentOne-onPause
-
FragmentOne-onSaveInstanceState
-
FragmentOne-onStop
-
FragmentOne-onDestroy
-
FragmentOne-onDetach
-
MainActivity-onCreate
-
FragmentOne-onAttach
-
FragmentOne-onCreate
-
FragmentOne-onCreateView
-
FragmentOne-onActivityCreated
-
FragmentOne-onStart
-
FragmentOne-onResume
-
FragmentOne-onPause
-
FragmentOne-onSaveInstanceState
-
FragmentOne-onStop
-
FragmentOne-onDestroy
-
FragmentOne-onDetach
-
MainActivity-onCreate
-
FragmentOne-onAttach
-
FragmentOne-onCreate
-
FragmentOne-onCreateView
-
FragmentOne-onActivityCreated
-
FragmentOne-onStart
-
FragmentOne-onResume
-
FragmentOne-onStop
-
FragmentOne-onAttach
-
FragmentOne-onCreate
-
FragmentOne-onCreateView
-
FragmentTwo-onActivityCreated
-
FragmentOne-onStart
-
FragmentOne-onResume
-
FragmentOne-onPause
-
FragmentOne-onSaveInstanceState
-
FragmentOne-onSaveInstanceState
-
FragmentOne-onStop
-
FragmentOne-onDestroy
-
FragmentOne-onDetach
-
FragmentOne-onDestroy
-
FragmentOne-onDetach
-
MainActivity-onCreate
-
FragmentOne-onAttach
-
FragmentOne-onCreate
-
FragmentOne-onAttach
-
FragmentOne-onCreate
-
FragmentOne-onCreateView
-
FragmentTwo-onActivityCreated
-
FragmentOne-onStart
-
FragmentOne-onResume