我在网站https://www.androidtutorialpoint.com/networking/android-volley-tutorial/上关注本教程 - 除了Singleton
类的这两种方法外,我几乎理解了所有内容。
是否有人可以帮助我正确理解这些方法。 我想知道这个方法。
public <T> void addToRequestQueue(Request<T> req,String tag){
req.setTag(tag);
getRequestQueue().add(req);
}
public ImageLoader getImageLoader(){
return mImageLoader;
}
public void cancelPendingRequests(Object tag){
if(mRequestQueue!=null){
mRequestQueue.cancelAll(tag);
}
}
我的单身人士课程......
public class MySingleton2 {
private static MySingleton2 mInatance;
private RequestQueue mRequestQueue;
private ImageLoader mImageLoader;
private Context mContext;
private MySingleton2(Context context) {
this.mContext=context;
mRequestQueue=getRequestQueue();
mImageLoader=new ImageLoader(mRequestQueue, new ImageLoader.ImageCache() {
private final LruCache<String,Bitmap>
cache=new LruCache<>(20);
@Override
public Bitmap getBitmap(String url) {
return cache.get(url);
}
@Override
public void putBitmap(String url, Bitmap bitmap) {
cache.put(url, bitmap);
}
});
}
public static synchronized MySingleton2 getInstance(Context context) {
if(mInatance==null) {
mInatance=new MySingleton2(context);
}
return mInatance;
}
public RequestQueue getRequestQueue() {
if(mRequestQueue==null) {
mRequestQueue=Volley.newRequestQueue(mContext.getApplicationContext());
}
return mRequestQueue;
}
public ImageLoader getImageLoader(){
return mImageLoader;
}
public <T> void addToRequestQueue(Request<T> req,String tag){
req.setTag(tag);
getRequestQueue().add(req);
}
public void cancelPendingRequests(Object tag){
if(mRequestQueue!=null){
mRequestQueue.cancelAll(tag);
}
}
}
赞赏任何形式的帮助......
答案 0 :(得分:1)
这些方法不言自明,但请注意:
Volley使用请求队列,您可以向该队列添加多个请求。方法addToRequestQueue
用于此。默认情况下,Volley最多可并行执行4个请求,因此如果您发出的请求超过4个,则会等待其他请求完成执行。
方法cancelPendingRequests
用于取消具有特定标记的所有请求。您可能只想在特殊情况下取消这些待处理请求,例如在退出活动时,您可能希望取消为加载特定于该活动的图像而发出的所有请求