У меня есть большая строка, представляющая канал JSON.Мое приложение загружает этот фид из удаленного веб-сервиса.
Вопросы:
1) Где я должен сохранить фид JSON после загрузки?Прямо сейчас я храню его в настройках приложения, и он отлично работает.Мне просто интересно, есть ли какая-либо причина, чтобы этого не делать, или есть варианты лучше / быстрее, такие как Внутреннее хранилище или что-то еще?
2) Когда я собираюсь показать данные из этого канала в моемактивность, я делаю что-то вроде этого:
JSONObject jsonObj = new JSONObject(json_string);
JSONArray jsonArr = jsonObj.getJSONArray("root");
for (int m = 0; m < jsonArr.length(); m++) {
....
}
Проблема в том, что первая строка, которая анализирует фид JSON, довольно дорогая.При моем текущем размере (который может увеличиться в будущем), возможно, потребуется полсекунды для завершения, немного, но все еще проблема.Например, я нажимаю кнопку, чтобы вызвать действие (для отображения данных), и эта пауза на 1/2 секунды заметна и не хороша.
Чтобы избежать этой паузы, мне, вероятно, следует проанализировать JSON сразу после загрузки канала.Тогда возникает вопрос: где мне хранить разобранный объект JSON?
i) Я не могу сохранить объект JSON в настройках, поскольку там могут храниться только примитивные данные.
ii) Должен ли я выполнять анализкаждый раз, когда мое приложение запускается и делает мои проанализированные объекты JSON (у меня их больше) глобальными (на уровне приложения), чтобы я мог получить к ним доступ из всех своих действий?
iii) Или, я считаю, что мой третийможно было бы объявить объекты JSON статическими, чтобы к ним можно было легко получить доступ из других действий?
Каков наилучший способ сделать это?
THX.