Кэширование сложных данных ListView

У меня есть ListView, где каждый элемент состоит из нескольких TextViews и Bitmaps. Список довольно большой, и при запуске приложения загрузка занимает около 5-6 секунд. Итак, я пытаюсь кэшировать данные ListView на свою SD-карту, чтобы список создавался только один раз, и после этого приложение считывало список из кеша, а не создавало список заново (я использую AsyncTask).

Итак, я попытался кэшировать данные ListView как простой объект Serializable, используя FileOutPutStream и ObjectOutputStream. Это отлично работает для простых списков, но в моем случае я не могу читать данные из кеша. Трассировка стека говорит, что объект не может быть прочитан, так как он не Serializable. Как я могу хранить такие сложные данные ListView? Я пробовал это до сих пор.


person Vinit Shandilya    schedule 25.12.2014    source источник
comment
используйте UIL (универсальный загрузчик изображений) и включите сохранение кеша на диск, простота использования и очень мощная библиотека   -  person Shayan Pourvatan    schedule 25.12.2014
comment
Нам было бы легче определить, как улучшить производительность, если бы вы разместили код адаптера и как вы загружаете свои текущие данные.   -  person Jay Soyer    schedule 25.12.2014


Ответы (1)


Возможно, вы сделали это, но это неясно, так как я не вижу ваш код: вам нужно расширить расширение Serializable в вашем пользовательском ListView, и вам, вероятно, потребуется установить и явно указать serialVersionUID (по крайней мере, я сделал):

public class ListView implements Serializable {


    /**
     * 
     */
    private static final long serialVersionUID = 21;
person JASON G PETERSON    schedule 25.12.2014