gpt4 book ai didi

android - Activity 未完成?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:54:07 27 4
gpt4 key购买 nike

是否有任何原因导致 Activity 可能未完成(即调用其 finalize())并因此被垃圾收集,即使它的 onDestroy() 已被调用?这只是您每天的平均内存泄漏吗?

最佳答案

onDestroy 并不意味着 Activity 对象被删除,它只是意味着 Activity 本身(作为 Android 概念)被销毁。这与实际的 Activity 对象无关。在内部,操作系统可能会决定回收它,尤其是当它由于配置更改而立即重新创建时(例如方向从纵向更改为横向)。

即使它被垃圾回收(这可能发生在 onDestroy 之后很久,在系统实际必须进行垃圾回收的某个时刻,因为它需要内存),也不能保证 finalize 被调用。它甚至在文档中:

"Note that the VM does guarantee that finalize() is called at most
once for any object, but it doesn't guarantee when (if at all)
finalize() will be called.".

一般来说,除非万不得已,否则永远不要使用finalize。它不像 C++ 中的析构函数那样可预测。如果您需要在 Activity 中执行清理,请在 onPauseonDestroy 或任何其他 Hook 中执行。

关于android - Activity 未完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5268379/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com