Android:ActivityLifeCycle
lastmod 2018-08-17created 2016-05-141 edits
Notes on the lifecycle of an Android Activity.
About
Activity_lifecycle.png
In general the movement through an activity's lifecycle looks like this:
| Method | Description | Killable? | Next | ||
| onCreate() | Called when the activity is first created. This is where you should do all of your normal static set up: create views, bind data to lists, etc. This method also provides you with a Bundle containing the activity's previously frozen state, if there was one. | No | onStart() | ||
| - | onRestart() | Called after your activity has been stopped, prior to it being started again. | No | onStart() | |
| - | onStart() | Called when the activity is becoming visible to the user. | No | onResume() or onStop() | |
| - | - | onResume() | Called when the activity will start interacting with the user. At this point your activity is at the top of the activity stack, with user input going to it. | No | onPause() |
| - | - | onPause() | Called when the system is about to start resuming a previous activity. This is typically used to commit unsaved changes to persistent data, stop animations and other things that may be consuming CPU, etc. Implementations of this method must be very quick because the next activity will not be resumed until this method returns. | Pre-HONEYCOMB | onResume() or onStop() |
| - | onStop() | Called when the activity is no longer visible to the user, because another activity has been resumed and is covering this one. This may happen either because a new activity is being started, an existing one is being brought in front of this one, or this one is being destroyed. | Yes | onRestart() or onDestroy() | |
| onDestroy() | The final call you receive before your activity is destroyed. This can happen either because the activity is finishing (someone called finish() on it, or because the system is temporarily destroying this instance of the activity to save space. You can distinguish between these two scenarios with the isFinishing() method. | Yes | nothing | ||
Resume and Pause
The onPause() function is called when the Activity loses focus, for example when another Activity comes on top of it. The onResume() function is called when it regains focus. For example, onPause() is called when the phone's alarm goes off or a call comes in.
Start and Stop
The onStop() function is called when the Activity leaves the screen completely. For example, it is called when you press the home key to go to the home screen, or when a call comes in and completely covers the screen. The onStart() function is called when the Activity comes back to the screen again.
How to choose
If you want to keep working when another Activity comes on top of yours but does not fill the whole screen, implement starting/stopping the work in onStart()/onStop(). If the work must stop whenever the Activity loses focus, implement starting/stopping the work in onResume()/onPause().
See also
Favorite site
- Android Developer site: Activity class
- Differences between onResume()/onPause() and onStart()/onStop()
- Android lifecycle explained in Korean 1
- Tests on the Activity "lifecycle"
References
-
Android_activity_lifecycle_kor.pdf ↩