我正在使用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/

10-13 04:11