在哪种情况下应该重写onDestroy()?

我正在阅读活动生命周期,并阅读有关开始和销毁活动的文档,请点击以下链接:http://developer.android.com/training/basics/activity-lifecycle/starting.html

以下文字来自链接:

销毁活动

虽然活动的第一个生命周期回调函数是onCreate(),但它的最后一个回调函数是onDestroy()。 系统在您的活动中调用此方法,作为您的活动实例从系统内存中完全删除的最终信号。

大多数应用程序不需要实现此方法,因为本地类引用与该活动一起销毁,并且您的活动在onPause()和onStop()期间应该执行最多的清理。 但是,如果您的活动包含在onCreate()期间创建的后台线程或其他长时间运行的资源,如果未正确关闭,可能会泄漏内存,您应该在onDestroy()期间终止它们。

有人可以给出一个示例(或示例)后台线程或“其他长期运行的资源”,这将保证onDestroy()覆盖,并解释他们如何避免定期清理onDestroy()?

澄清:我明白onPause(),onStop()和onDestroy()是如何工作的,这并不是我所问的。 我要求更深入的澄清什么将保证重写onDestroy()


那么,onDestroy()是你的活动关闭时由框架调用的方法。 它被称为允许你的活动做它可能希望做的任何关闭操作。 该方法与垃圾回收没有任何关系。 特别是,它与C ++分离器无关(尽管它的名字)。

此方法为程序提供了执行清理资源等操作的机会,从而不会污染关联的应用程序。 如果你没有关闭操作,你不需要覆盖它。 基类基本上什么都不做。


如果无法将cleanUp logic onDestroy()放入onPause()onStop()必须将cleanUp logic onDestroy()放入onDestroy() onStop()

例如:你希望你的活动只在完成时才做某事,即只做一次。 你不能把这个逻辑放在onStop()因为当你的活动loses focus或者在onPause()调用它 - 当你的活动goes to background时调用它。

链接地址: http://www.djcxy.com/p/90807.html

上一篇: In which cases should one override onDestroy()?

下一篇: event when app is started, stopped and paused