The following figure (from the official doc) describes the well-known lifecycle of an Android activity:
On the other hand, when the activity is destroyed by the system (for example because memory needs to be reclaimed), the state of the activity is sometimes automatically saved and restored by means of the methods onSaveInstanceState()
and onRestoreInstanceState()
, as illustrated by the following figure (also from the official doc):
I'm aware that onSaveInstanceState()
is not always called when an activity is about to be destroyed. For example, if it is destroyed because the user has pressed the "back" button, the activity state is not preserved. But in the cases when the state is saved and restored, and onSaveInstanceState()
/ onRestoreInstanceState()
get called, when exactly are they called?
For example, according to the above figures, onRestoreInstanceState()
might be called before onStart()
, or after onStart()
but before onResume()
, or after onResume()
. Similarly, several possibilities exist for onSaveInstanceState()
. So when are they called exactly?
Ideally, what I would like is to see a combined diagram showing the activity lifecycle states and the save/restore methods, if that exists.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…