为什么实现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