@Override public String saveDataToCacheAndReturnData(final String data, final Object cacheKey) throws CacheSavingException { Ln.v("Saving String " + data + " into cacheKey = " + cacheKey); try { if (isAsyncSaveEnabled()) { Thread t = new Thread() { @Override public void run() { try { FileUtils.writeStringToFile(getCacheFile(cacheKey), data, CharEncoding.UTF_8); } catch (IOException e) { Ln.e(e, "An error occured on saving request " + cacheKey + " data asynchronously"); } }; }; t.start(); } else { FileUtils.writeStringToFile(getCacheFile(cacheKey), data, CharEncoding.UTF_8); } } catch (Exception e) { throw new CacheSavingException(e); } return data; } }
@Override public CacheManager createCacheManager(Application application) { CacheManager cacheManager = new CacheManager(); // init InFileStringObjectPersister inFileStringObjectPersister = new InFileStringObjectPersister(application); InFileInputStreamObjectPersister inFileInputStreamObjectPersister = new InFileInputStreamObjectPersister(application); JacksonObjectPersisterFactory inJSonFileObjectPersisterFactory = new JacksonObjectPersisterFactory(application); inFileStringObjectPersister.setAsyncSaveEnabled(true); inFileInputStreamObjectPersister.setAsyncSaveEnabled(true); inJSonFileObjectPersisterFactory.setAsyncSaveEnabled(true); cacheManager.addPersister(inFileStringObjectPersister); cacheManager.addPersister(inFileInputStreamObjectPersister); cacheManager.addPersister(inJSonFileObjectPersisterFactory); return cacheManager; }
@Override public void run() { try { FileUtils.writeStringToFile(getCacheFile(cacheKey), data, CharEncoding.UTF_8); } catch (IOException e) { Ln.e(e, "An error occured on saving request " + cacheKey + " data asynchronously"); } }; };