Activity Lifecycle in Android
In Android, activities are managed using an activity stack. When a new activity is started, it’s placed on top of the stack and becomes the running activity.
Activities Can Exist in 3 States:
Running - Activity is started and on the top of the activity stack.
Paused - Activity is visible but not on top of the activity stack.
Stopped - An activity can be destroyed by the operating system.
7 Activity Lifecycle Methods
Activity Launched - 3 Methods called:
onCreate( ) - performs any initial start up procedures. It controls initializing variables, creating views, or starting background processes. It also provides a bundle containing the activity’s previous instance state, if applicable, or a null bundle.
onStart( ) - represents the point in the app’s activity lifecycle right before it’s visible to the user and not yet on top of the activity stack. That means the user can’t yet interact with it. onStart( ) method is rarely overridden.
onResume( ) - is called immediately after onStart( ). It often starts any animations in our activity. Once onResume( ) returns, the activity is running. At this point, the activity is finally on top of the activity stack and can interact with the user.
The activity is now up and running, but all things come to an end.
2 Possible Directions
What happens now depends on the button pressed - the BACK button or a different button results in the following methods being called:
onPause( ) - is called when another activity is taking over the top of the activity stack and is becoming the foreground activity. We can commit unsaved changes and stop animations here.
Can our activity be seen in the background?
Yes - When the foreground activity is dismissed our activity calls
No - If the new activity completely obscures our activity, then onStop( ) is called.
onStop( ) is called if an activity enters the stopped state and is no longer visible. It’s rare that onStop is overridden. Services and broadcast receivers are a good reason to override onStop( ) and onStart( ).
Did the user return to our activity?
Yes - onRestart( ) is called. onRestart( ) is hardly ever overridden. Then onStart( ) is called.
No - onDestroy( ) is called.
onDestroy( ) - the user has exited the activity by using the back button or in a way that has explicitly called the activity’s finish( ) method, or because the activity had been stopped and is now being destroyed by the operating system to reclaim memory.
onDestroy( ) is typically used to clean up background processes started in onCreate( ).