Жизненный цикл андроида Активность для ListView с использованием кеша? - PullRequest
0 голосов
/ 14 марта 2011

Я реализовал listView, который показывает элементы, загруженные на мой веб-сервер.ListView использует «кеш» (держатель), я нажимаю на один элемент моего listView и вызывается намерение (новое действие).Он отлично работает, но когда я возвращаюсь к своему списку из этого действия, вызывается onStart () и снова вызывается загрузка (тогда как мне это не нужно, потому что я использую 'cache').

Как я могу решить эту проблему?Мне нужно вызвать веб-сервер в функции, которую он не вызывает, когда я возвращаюсь в этом задании.

Спасибо

Флоран

1 Ответ

0 голосов
/ 14 марта 2011

Если вы пытаетесь кэшировать изображения между действиями, есть два подхода:

  1. Запись файлов на SD-карту - Это может быть удобно, еслиВы хотите, чтобы изображения оставались там даже после того, как ваша деятельность заканчивается и перезапускается.Недостатком является то, что теперь вам необходимо управлять жизненным циклом изображений и периодически удалять их, чтобы каталог кэша не увеличивался.

  2. Использованиеservice - Я не уверен, какова будет производительность с этим методом, и это, как правило, немного сложнее.Служба будет продолжать жить, пока ваши действия приходят и уходят, сохраняя ваши изображения в памяти.Прочитайте этот ответ для получения дополнительной информации о взаимодействии со службами.

  3. Храните изображения в статическом синглтоне - Быстрый и грязный способ;Просто убедитесь, что вы не храните слишком много в памяти, или вы получите исключение нехватки памяти.

Я бы, вероятно, предпочел метод 1.

Такжесм. этот исчерпывающий ответ .

...