我正在使用Volley设置图像网址。我的代码在以下位置崩溃:
mrq=Volley.newRequestQueue(this);
记录猫说免税额位于:
com.android.volley.toolbox.DiskBasedCache.streamToBytes
如果我将代码注释掉,程序不会崩溃。
我尝试过几次重启手机的原因,因为在研究中,我发现这种方法可以解决某些问题。
为什么创建一个RequestQueue使用那么多的内存?
如何防止OutOfMemoryError发生?
我是否需要清空缓存?
感谢您的帮助,并抽出宝贵的时间阅读本文。
最佳答案
您如何初始化RequestQueue?我怀疑您正在为每个活动创建RequestQueues.So在Application类中将其初始化为
public class ApplicationController extends Application {
private static ApplicationController sInstance;
private RequestQueue mRequestQueue;
@Override
public void onCreate() {
super.onCreate();
// initialize the singleton
sInstance = this;
}
public static synchronized ApplicationController getInstance() {
return sInstance;
}
public RequestQueue getRequestQueue() {
// lazy initialize the request queue, the queue instance will be
// created when it is accessed for the first time
if (mRequestQueue == null) {
mRequestQueue = Volley.newRequestQueue(getApplicationContext());
}
return mRequestQueue;
}
//your code
}
从您的活动中获取getRequest队列为
mrq = ApplicationController.getInstance().getRequestQueue();
关于android - Volley.newRequestQueue导致OutOfMemoryError,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24021411/