Лучший способ кэшировать ответ XML / JSON в мое приложение.Полный текстовый файл? - PullRequest
5 голосов
/ 03 октября 2011

В настоящее время я использую веб-сервисы XML или JSON в своих различных приложениях.

Я просто хотел бы знать, как проще всего кешировать ответы на вопросы в текстовых файлах.

Я думал о базах данных, но это кажется слишком сложным!

Итак, что я хотел бы сделать, это

  1. чтобы сохранить эти файлы xml / JSON в памяти телефона, я должен сделать что-то подобное?

    String FILENAME = "MyXmlFile";
    String string = "hello world!";
    
    FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
    fos.write(string.getBytes());
    fos.close();  
    
  2. В onCreate моего приложения я хотел бы проанализировать этот файл. Поскольку все учебные пособия показывают, как анализировать файл по веб-URL, я так и не нашел способ проанализировать внутренний текстовый файл. У кого-нибудь есть совет по этому вопросу?

Спасибо.

Ответы [ 3 ]

1 голос
/ 08 июня 2012

Другой способ - использовать классную библиотеку http-request .Это позволяет вам использовать ETag, чтобы проверить, не был ли изменен ответ (HTTP 304 Not Modified).Если не изменено, используйте JSON из файлового кэша, иначе сделайте запрос для получения нового ресурса.

File latest = new File("/data/cache.json");
HttpRequest request = HttpRequest.get("http://google.com");
//Copy response to file
request.body(latest);
//Store eTag of response
String eTag = request.eTag();
//Later on check if changes exist
boolean unchanged = HttpRequest.get("http://google.com")
                               .ifNoneMatch(eTag)
                               .notModified();
1 голос
/ 03 октября 2011

Вы можете применить SharedPreferences, который также является XML-файлом. Просто сначала проанализируйте ваш JSON / XML, извлеките все пары ключ / значение, а затем запишите в преф файл. В следующий раз при загрузке onCreate () просто перезагрузите ключи / значения из pref. Этот пример может дать вам начало:
http://android -er.blogspot.com / 2011/01 / пример-в-с использованием-sharedpreferencesedito.html

0 голосов
/ 03 октября 2011

Это будет противоположностью вашей записи XML / JSON. Используйте openFileInput, чтобы получить FileInputStream. Считайте поток в строку, а затем проанализируйте ее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...