当 Activity 的第一个生命周期回调是 onCreate()
时,它最近的回调是 onDestroy()
。系统会对您的 Activity 调用此方法,作为您的 Activity 实例完全从系统内存移除的最终信号。
大多数应用不需要实现此方法,因为局部类引用与 Activity 一同销毁,并且您的 Activity 应在 onPause()
和 onStop()
期间执行大多数清理操作。但是,如果您的 Activity 包含您在 onCreate()
期间创建的后台线程或其他如若未正确关闭可能导致内存泄露的长期运行资源,您应在 onDestroy()
期间终止它们。
@Override
public void onDestroy() {
super.onDestroy(); // Always call the superclass
// Stop method tracing that the activity started during onCreate()
android.os.Debug.stopMethodTracing();
}
在所有情况下,系统在调用
onPause()
和
onStop()
之后都会调用
onDestroy()
,只有一个例外:当您从
onCreate()
方法内调用
finish()
时。在某些情况下,比如当您的 Activity 作为临时决策工具运行以启动另一个 Activity 时,您可从
onCreate()
内调用
finish()
来销毁 Activity。在这种情况下,系统会立刻调用
onDestroy()
,而不调用任何其他 生命周期方法。