我遇到的信息是,对于Context对象的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类,但是如果AsyncTask中的其他任何地方需要WeakReference,请保留WeakReference吗?
答案 0 :(得分:2)
这对你没有帮助,因为你要将上下文传递给super()。如果超级函数存储它,它将负责它自己的弱引用(或不是)。这仅适用于长期存储上下文的情况。