我在Android活动中有两个按钮,附带了这两种方法。其中一个加载数据,另一个只是回溯它。当然,第一次执行第二种方法时,它从缓存中获取数据并且消耗的时间非常短,但是对此方法的进一步调用总是变得更大(与负载数据方法消耗的一样大),换句话说,似乎缓存“随机”清除。
daoSession是一个静态属性,我只是多次调用getDataFromCacheById方法(再次按下相同的按钮,没有别的)。为什么要清除缓存?有没有办法将缓存数据始终保存在内存中?
祝你好运
public void onMyLoadButtonClick(View view) {
listaIds.clear();
List<String> lTexto = new ArrayList<String>();
Date iniTime = new Date();
LibroDao libroDao = daoSession.getLibroDao();
for (Libro tempLibro : libroDao.loadAll()) {
for (Nota tempNota : tempLibro.getNotaList()) {
lTexto.add(tempNota.getText());
listaIds.add(tempNota.getId());
}
}
Date finTime = new Date();
long tiempoTotal = finTime.getTime() - iniTime.getTime();
Log.v(LOG_TAG, "Overall time = " + tiempoTotal + " lTextoSize = " + lTexto.size());
}
public void getDataFromCacheById(View view) {
List<String> lTexto2 = new ArrayList<String>();
Date iniTime2 = new Date();
for (Long tempId : listaIds) {
lTexto2.add(noteDao.load(tempId).getText());
}
Date finTime2 = new Date();
long tiempoTotal2 = finTime2.getTime() - iniTime2.getTime();
Log.v(LOG_TAG, "Tiempo total de la operación Prueba Caché = " + tiempoTotal2 + " lTextoSize = " + lTexto2.size());
}