java - Caching data using collection -


so, have issue caching data inside java collection. when initialize app first time use below function this,

cacheimageandsounds(0,6); 

now once reach 4th position start want remove previous 3 elements collection , cache next 3 i.e.

cacheimageandsounds(4,10); 

but have 4th, 5th , 6th image in cache won't want re-bring them inside cache present, hence download or fetch 7th 10th image , sound files.

how can go doing this, or how may tweak algorithm of caching data inside map?

this function use create cache of images , sound files inside collection , use further retrieve data it, based on various index values. use in way knowingly can set 2 indexes , required data filled inside collection.

public int cacheimageandsounds(int startindex,int lastindex)     {         for(int i=startindex;i<lastindex;i++)         {            aq.ajax(data1.get(i), bitmap.class, new ajaxcallback<bitmap>() {             @override             public void callback(string url, bitmap object, ajaxstatus status) {                 imagefilexxs.put(url, object);                 system.out.println("size of imagefile"+imagefilexxs.size());             }         });           aq.ajax(data1.get(i).replace(".png", ".mp3"), file.class, new ajaxcallback<file>() {             @override             public void callback(string url, file object, ajaxstatus status) {                 imagefilexxsm.put(url, object);                  system.out.println("size of songfile"+imagefilexxsm.size());                  if(imagefilexxsm.size()>=6)                 {                       update(); //call ui                 }             }         });        }       return 1;     } 

clear cache , build new one.

public void clearcachelogic()     {         imagefilexxs.clear();         imagefilexxsm.clear();     } 

looks not caching index , checking it, before making ajax call. have new set<integer> called processed. , method like,

public int cacheimageandsounds(int startindex,int lastindex)     {         for(final int i=startindex;i<lastindex;i++)         {                //check if index processed, if not make call             if(!processed.contains(i)) {                 aq.ajax(data1.get(i), bitmap.class, new ajaxcallback<bitmap>() {                     @override                     public void callback(string url, bitmap object, ajaxstatus status) {                         imagefilexxs.put(url, object);                         system.out.println("size of imagefile"+imagefilexxs.size());                         processed.add(i); //once result comes, mark index processed                     }                 });                   aq.ajax(data1.get(i).replace(".png", ".mp3"), file.class, new ajaxcallback<file>() {                     @override                     public void callback(string url, file object, ajaxstatus status) {                         imagefilexxsm.put(url, object);                         processed.add(i); //once result comes, mark index processed                         system.out.println("size of songfile"+imagefilexxsm.size());                          if(imagefilexxsm.size()>=6)                         {                             update(); //call ui                         }                     }                 });             }         }       return 1;     } 

in way, when call cacheimageandsounds(4,10);, 4th, 5th , 6th index, no ajax call made since these indices present in processed set


Comments

Popular posts from this blog

c# - DetailsView in ASP.Net - How to add another column on the side/add a control in each row? -

javascript - firefox memory leak -

Trying to import CSV file to a SQL Server database using asp.net and c# - can't find what I'm missing -