【发布时间】:2018-06-25 18:13:01
【问题描述】:
每次我提出请求时,我都会创建一个新的 Volley 请求队列:
public void initializeQueue(Context context){
File cacheDir = new File(context.getCacheDir(), "Volley");
this.queue = new RequestQueue(new DiskBasedCache(cacheDir), new BasicNetwork(new HurlStack()), MAX_SIZE_THREAD_POOL);
this.queue.start();
}
当我完成我的请求时,我会清理变量
this.queue = null;
但是当我发出很多请求时,会抛出一个错误“Throwing OutOfMemoryError “pthread_create”。于是上网一搜,结论是只发起一次队列。
但我的问题是,如果我不断创建新的队列,为什么内存会不断增加?我使变量可以为空,因此旧队列无法访问并且 GC 可收集。还有其他东西在排队吗?
注意 上面的上下文使用了应用程序。
谢谢
【问题讨论】:
-
GC 是一个周期性的过程。即使您将变量设置为
null,也不能保证它会立即被 GC。