49

根据 android Activity 生命周期,唯一保证被调用的回调(如果活动离开运行状态,这通常是预期的)是onPause().

因此,我必须假设在某些情况下实现它是有意义的onStop()onDestroy()尽管它们并不能真正保证被调用。

我知道onStop()当一个活动有可能通过 Stopped 状态返回到 Running 状态时应该实施(为什么它会这样做而不是直接返回是另一个问题)。

但是onDestroy(),当我可以将所有清理/状态保存放入onPause()时,我不清楚对 的需求。

你能描述一个真正的应用情况(即不类比驾驶汽车等),在这种情况下实现它是有意义的onDestroy()吗?

4

2 回答 2

26

如果您显式调用 finish(); 将调用 onDestroy;你自己。

您的主要活动在地图活动上调用 startActivityForResult。

使用 LocationListener 进行地图活动,用户单击地图并选择当地餐馆。

然后,活动设置一些附加内容以发送回您的主要活动,然后显式调用完成();在其自身和 onDestroy 中杀死 LocationListener 和您调用的其他变量。

刚刚在文档中找到了这个

onDestroy() = 在销毁活动之前收到的最后一个调用。这可能是因为 Activity 正在完成(有人在其上调用了 finish(),或者因为系统正在临时销毁该 Activity 实例以节省空间。您可以使用 isFinishing() 方法区分这两种情况。

于 2011-05-24T21:51:40.523 回答
3

你能描述一个真正的应用情况(即不类比驾驶汽车等),在这种情况下实现 onDestroy() 是有意义的吗?

当您想要捕获配置更改时。这一切都在 SDK 中:http: //developer.android.com/reference/android/app/Activity.html

于 2011-05-24T21:54:48.333 回答