这两种方法在凌空中有什么用?

时间:2016-12-16 07:57:32

标签: android android-volley

我在网站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);
        }
    }
}

赞赏任何形式的帮助......

1 个答案:

答案 0 :(得分:1)

这些方法不言自明,但请注意:

Volley使用请求队列,您可以向该队列添加多个请求。方法addToRequestQueue用于此。默认情况下,Volley最多可并行执行4个请求,因此如果您发出的请求超过4个,则会等待其他请求完成执行。

方法cancelPendingRequests用于取消具有特定标记的所有请求。您可能只想在特殊情况下取消这些待处理请求,例如在退出活动时,您可能希望取消为加载特定于该活动的图像而发出的所有请求