gpt4 book ai didi

java - 弱引用 get() 方法的安全性如何? (安卓,异步任务)

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:06:28 27 4
gpt4 key购买 nike

我正在制作一个 Android 移动应用程序。我在 AsyncTask 中对我的 Activity 有一个 WeakReference,以确保它可以被垃圾收集。

当调用 onPostExecute() 时,我会调用

Acitivty activity = mWeakRef.get();

然后我使用 Activity 对象向用户显示对话框等。

我的问题是,当我试图确定要显示哪个对话框以及要做什么时,我的 Activity 对象会变为空吗?如果 GC 在我的执行行之间运行,它会变成 null 吗?我可以安全地继续使用第一个 get() 中的那个对象,还是我必须重做 get() 并在使用它之前检查该值是否为 null。

谢谢!

最佳答案

很安全!
一旦将 get() 的结果分配给一个变量,您就会再次拥有一个强引用,只要新引用存在,它就会阻止该对象的垃圾收集。
当然,在这个赋值之后你需要检查 activity 是否为空。

关于java - 弱引用 get() 方法的安全性如何? (安卓,异步任务),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7048264/

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