为什么实现onDestroy()如果​​不能保证被调用?

根据android Activity Lifecycle,唯一保证被调用的callbackonPause()onPause() ,如果一个活动处于运行状态(通常是预期的onPause()

所以,我必须假定有些场景在实现onStop()onDestroy()时候是有意义的,尽pipe它们并不真正被调用。

我明白onStop()应该被实现,当一个活动可能通过停止状态返回到运行状态(为什么会这样做,而不是直接返回是一个不同的问题)。

但是,当我可以将所有清理/状态保存到onPause()onDestroy()的需要对我来说是不清楚的。

你可以描述一个真正的应用程序的情况(即不像驾驶汽车等),其中有意义的实现onDestroy()

如果你明确地调用了finish(),onDestroy将被调用。 你自己。

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

使用LocationListener对活动进行映射,用户单击地图并select说本地餐馆。

然后,这个活动,设置一些额外的东西发回你的主要活动,然后明确地调用完成(); onDestroy会杀死LocationListener和其他你调用的variables。

刚刚在文档中find了这个

onDestroy()=在你的活动被销毁之前你接收到的最终的调用。 这可能是因为活动正在完成(某人称为finish(),或者系统暂时销毁活动实例以节省空间,您可以使用isFinishing()方法区分这两种情况。

你可以描述一个真正的应用程序的情况(即不像驾驶汽车等),其中有意义的实现onDestroy()?

当你想捕获configuration更改。 这些都在SDK中: http : //developer.android.com/reference/android/app/Activity.html