1
我已经实现了一个viewpager,其中包含两个片段,每个片段都发送一个GET请求以抽签。由于这两个片段是同时加载的,所以在volley中使用默认请求队列时,会出现单个客户端连接管理器错误。这里是我的驻留在一个单独的请求队列代码:Android volley - 来自viewpager片段的并发/并行获取请求
client = new DefaultHttpClient();
mRequestQueue = Volley.newRequestQueue(ctx.getApplicationContext(), new HttpClientStack(client));
这将导致以下错误:
W/SingleClientConnManager﹕ Invalid use of SingleClientConnManager:connection still allocated.
Make sure to release the connection before allocating another one
我切换到使用ThreadedConnectionManager,它似乎已经解决了这个问题。以下解决方案:
DefaultHttpClient mDefaultHttpClient = new DefaultHttpClient();
final ClientConnectionManager mClientConnectionManager = mDefaultHttpClient.getConnectionManager();
final HttpParams mHttpParams = mDefaultHttpClient.getParams();
final ThreadSafeClientConnManager mThreadSafeClientConnManager = new ThreadSafeClientConnManager(mHttpParams, mClientConnectionManager.getSchemeRegistry());
mDefaultHttpClient = new DefaultHttpClient(mThreadSafeClientConnManager, mHttpParams);
final HttpStack httpStack = new HttpClientStack(mDefaultHttpClient);
mRequestQueue = Volley.newRequestQueue(ctx.getApplicationContext(), httpStack);
我的问题是:是否有解决的更好的方法这个问题,或者是我的解决方案是否合适?根据我的用例,这里最好的做法是什么?
您是否每次都在制作newRequestQueue?或者它只是第一次创建? –
它只创建一次 –
试图帮助。请看答案。 –