How can I handle all states of orientation event occurs?
Something like:
before starting (save some screen states)
Use onSaveInstanceState() and/or onRetainNonConfigurationInstance() and/or a fragment on which you have called setRetainInstance(true)
when happening (animation purposes)
That is handled by the OS.
after it's happen (load the screen state)
Use onRestoreInstanceState() and/or getLastNonConfigurationInstance() (if you went the fragment route, your data is just naturally still there)
I know that onConfigurationChanged can handle orientation changes.
@EightEight's answer covers this nicely.