GreenDAO随机清除缓存

时间:2015-01-14 12:29:10

标签: android caching greendao

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

0 个答案:

没有答案