Быстро загружать данные о повторном запуске деятельности

StackOverflow https://stackoverflow.com/questions/4162121

Вопрос

На самом деле, я выбираю XML из Интернета, разбирая его и отобразите его на экране. Проблема, которую я получаю, является то, что активность пытается загрузить данные из веб каждый раз, когда вызывается активность. (На самом деле, мое мобильное приложение требует частых поездок на сервер), поэтому я нахожусь в поисках ниже:

On Re-launch of an activity, the data from web should not be loaded again. 
creating a class that i can use to transparently make application faster by
selectively caching items in memory.  And thus, making users very happy and 
This class can even apply individual refresh times to each cached item.

Итак, я думаю, что мне нужно хранить данные в кэше или что-то в этом роде.

Есть ли путь / метод для реализации такой вещи? Так что ему нужно не загружать каждый раз на повторное запуск деятельности.

Это было полезно?

Решение

Не уверены, какая производительность будет с этим предложением, но намного проще всего, если вы просто хотите избежать привлечения файлов XML каждый раз, когда ваша активность повторно запускает, это сохранить их Внутренняя память. Отказ Когда ваша деятельность (Re-) запускается, вы начнете с проверки, если файлы существуют локально, прежде чем принести их из сети.

Вы, конечно, нуждаетесь в том, нуждаетесь в своем роде логике, чтобы сказать, будет ли файл XML «устареть» (вы можете иметь простую таблицу базы данных с именами файлов и последним привлеченным датами), и вы, вероятно, также хотели бы иметь какой-то Очистка логики для удаления файлов, когда вам больше не нужны, поэтому они не заполняют ненужное пространство.

Другие советы

Вы можете попробовать использовать Оказание услуг Для загрузки данных в фоновом режиме при заданных интервалах.

Ну, что я сделал бы, это сделать таблицу, давайте скажем, позвоните в него «table_web_xml» и соответствующие поля в нем для хранения определенных веб-данных.

При запуске активности я бы сначала проверил, есть данные в базе данных. Если таблица пуста (что означает, что активность загружается в первый раз), я бы загрузил его из веб и отобразите на экране и сохраняющуюся в базе данных.

С другой стороны, если в таблице есть данные, то я бы загрузил его на экран и запустил бы услугу в фоновом режиме, который будет обновлять мою таблицу базы данных, если в нем есть какие-либо изменения в Интернете. Что это будет делать, это для точки зрения системы отклика, данные всегда будут быстро загружаться, когда активность неоднократно открывается, а фоновое обслуживание обеспечит новый и последний контент в последующих запросах :). Надеюсь, поможет.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top