gpt4 book ai didi

java - 实例化 Loader/AsyncTask 时是否应该使用对 Context 对象的 WeakReference?

转载 作者:行者123 更新时间:2023-11-29 21:05:24 25 4
gpt4 key购买 nike

我发现有关上下文对象的 WeakReference 应该与 AsyncTasks 和 Loaders 一起使用的信息,以避免在 AsyncTask 完成之前 Activity 被销毁的情况下发生内存泄漏。但我不清楚是否有任何对 Context 的引用应该是弱引用——包括 AsyncTask 被实例化时的引用。那么,应该以这种方式实例化 AsyncTaskLoader 吗?

public abstract class BaseLoader extends AsyncTaskLoader<Response> {

public BaseLoader(WeakReference<Context> context){
super(context.get());
}

...
}

或者是否可以使用实际的 Context 对象来实例化 AsyncTastkLoader 类,但保留对上下文的 WeakReference 以防 AsyncTask 中的其他任何地方需要它?

最佳答案

它在这里对您没有帮助,因为您要将上下文传递给 super()。如果 super 函数正在存储它,它将负责它自己对它的弱引用(或不)。这仅适用于您长期存储上下文的情况。

关于java - 实例化 Loader/AsyncTask 时是否应该使用对 Context 对象的 WeakReference?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24761254/

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