在哪种情况下应该重写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
时调用它。