The last callback in the lifecycle of an activity is
onDestroy(). The system calls this method on your activity as the final signal that your activity instance is being completely removed from the system memory. Usually, the system will call
onStop() before calling
onDestroy(). Describe a scenario, though, where
onStop() would not be invoked.
onStop() will not be invoked if
finish() is called from within the
onCreate() method. This might occur, for example, if you detect an error during
onCreate() and call
finish() as a result. In such a case, though, any cleanup you expected to be done in
onStop() will not be executed.
onDestroy() is the last callback in the lifecycle of an activity, it is worth mentioning that this callback may not always be called and should not be relied upon to destroy resources. It is better have the resources created in onStart() and onResume(), and have them destroyed in onStop() and onPause, respectively.
See the Android developer’s guide for more information about the activity lifecycle.