gpt4 book ai didi

java - 匿名 Handler 或 Runnable 会造成内存泄漏吗?

转载 作者:太空狗 更新时间:2023-10-29 15:54:02 27 4
gpt4 key购买 nike

new Handler().postDelayed(new Runnable(){

@Override
public void run() {
// do stuff
}}, 100);

如果我从 Activity (onCreate 或 onResume 或其他地方)调用它会导致内存泄漏吗?我读到 new Runnable() 实际上应该是一个静态实例,是这样吗?

最佳答案

是的。此代码可能会导致内存泄漏。

只要这个基于 Runnable 的匿名类在队列中(在此示例中为 100 毫秒),它就会保持对外部 Activity 类的引用。

当然,这样的内存泄漏本身并不是问题,但是根据 run 中执行的代码,它可能会产生更大的问题,例如当您运行时崩溃应用程序。尝试在终止 Activity 后显示对话框。在这种情况下,您会看到很好的信息异常:

IllegalArgumentException: Can not perform this action after onSaveInstanceState

BadTokenException: Unable to add window - ... is your activity running?

关于java - 匿名 Handler 或 Runnable 会造成内存泄漏吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17778077/

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