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

Java 在哪些情况下应该重写onDestroy()?,java,android,android-activity,activity-lifecycle,Java,Android,Android Activity,Activity Lifecycle,我正在阅读活动生命周期,并在以下链接上阅读关于启动和销毁活动的文档: 以下文本来自链接: 销毁活动 虽然活动的第一个生命周期回调是onCreate(),但它的 最后一个回调是onDestroy()。系统在您的计算机上调用此方法 活动作为活动实例正在运行的最终信号 完全从系统内存中删除 大多数应用不需要实现此方法,因为本地类 引用将随活动一起销毁,您的活动应 在onPause()和onStop()期间执行大多数清理。但是,如果您的 活动包括您在活动期间创建的后台线程 onCreate()或其他可

我正在阅读活动生命周期,并在以下链接上阅读关于启动和销毁活动的文档:

以下文本来自链接:

销毁活动

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

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

有人能举一个(或多个)后台线程或“其他长时间运行的资源”的例子来保证onDestroy()覆盖,并解释它们如何避免常规的onDestroy()清理


澄清:我理解onPause()、onStop()和onDestroy()是如何工作的,这不是我要问的。我要求更深入地澄清,当无法将
onPause()
onStop()
放入时,您必须将
清理逻辑
放入
onDestroy()

示例:您希望您的活动仅在完成时执行某项操作,即仅执行一次。您不能将该逻辑放在
onStop()
中,因为它在活动
失去焦点时调用,或者在
onPause()
中调用—在活动
进入后台时调用。调用它是为了允许您的活动执行它可能希望执行的任何关闭操作。该方法实际上与垃圾收集无关。特别是,它与C++的DestuCube(尽管它的名字)无关。

此方法使您的程序有机会执行清理资源之类的操作,以便它们不会污染关联的应用程序。如果没有要执行的关闭操作,则不需要覆盖它。基类基本上什么都不做。

如果您对活动进行编码时假设它们可能在onStop()之后被销毁,那么就不会出错。除非您使用finish(),否则不能保证调用onDestroy()。是的,您是对的。。我只是指出OP何时会发现重写onDestroy()很有用。。从来没有说过他必须重写它总是……)谢谢你的回答,但我已经读过你在问题引用部分所说的。