Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Shamsik
-42 / 17 / 15
Регистрация: 23.12.2013
Сообщений: 521
Записей в блоге: 1
Завершенные тесты: 2
#1

Cache JSON Data

30.04.2016, 19:24. Просмотров 820. Ответов 13
Метки нет (Все метки)

Добрый вечер.

Как кешировать текст который был получен в результате JSON парсинга, чтобы при каждом обновлении Activity не тормозила.

Есть ли библиотека которая работает с кешироваем текста или еще что нибудь, подскажите пожалуйста очень нужно.

Заранее спасибо.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.04.2016, 19:24
Ответы с готовыми решениями:

Открыть файл из папки /data/data/com.myapp/files/appdata/
я закачиваю файлы в папку приложения и файлы попадают сюда:...

Просмотреть файл моего приложения /data/data/com.example.my.app/files/samplefile.txt
Добрый день! Не ожидал, что все так сложно окажется. Моя программа создает...

Доступ к файлам в data/data/appname/databases
Всем привет. Вопрос в следующем Программа использует функцию отправки файла...

Доступ к файлам data/data на нерутованом устройстве
я пытаюсь прочитать файл db который лежит в data/data/com.app и не могу выдает...

Внутреннее хранение данных data/data
Здравствуйте. Пробую писать приложения под Андроид на С++, используя NDK. Для...

13
vxg
Модератор
3246 / 2047 / 322
Регистрация: 13.01.2012
Сообщений: 7,926
30.04.2016, 19:33 #2
Не совсем ясно что нужно. Если вы каким то образом из одного текста (JSON) получили человеческий просто храните его в все.
0
Alexvp
111 / 75 / 8
Регистрация: 03.08.2014
Сообщений: 389
30.04.2016, 19:38 #3
Возможно, это не слишком элегантный вариант, но кто вам мешает сохранить текст после парсинга в глобальной переменной объекта Application?
0
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
30.04.2016, 19:55 #4
Shamsik, так, стоп. А почему она тормозит? Что у Вас там за данные такие?
0
Shamsik
-42 / 17 / 15
Регистрация: 23.12.2013
Сообщений: 521
Записей в блоге: 1
Завершенные тесты: 2
30.04.2016, 20:54  [ТС] #5
Я на сайте формирую JSON файл (Там хранится огромное количество информации).

А в приложении я его (распаковываю) и вывожу их, а когда я обновляю страницу она появляться через 2-3 сек, после обновления страницы.

А мне нужно было чтобы она появлялась мгновенно за миллисекунды.

Как читал можно как та кэшировать текст, не знаю как его реализовать, библиотеки тоже не нашел.

Пример приведу VK or Instagram (Огромное количество информации и фотографии они при переходе подгружаются мгновенно.).

Хотел для себя тоже сделать так.
0
SergioO
168 / 184 / 90
Регистрация: 13.12.2015
Сообщений: 995
30.04.2016, 21:04 #6
Shamsik, веб-страницу надо кэшировать?
если просто данные, то пишем их в переменную в куче, переменную прогружаем, и далее грузим данные из кучи, а не по сети. не совсем понятно что нужно.
0
Shamsik
-42 / 17 / 15
Регистрация: 23.12.2013
Сообщений: 521
Записей в блоге: 1
Завершенные тесты: 2
30.04.2016, 21:05  [ТС] #7
Не Web Страница это, я формирую ListView
0
SergioO
168 / 184 / 90
Регистрация: 13.12.2015
Сообщений: 995
30.04.2016, 21:17 #8
Цитата Сообщение от Shamsik Посмотреть сообщение
Пример приведу VK or Instagram (Огромное количество информации и фотографии они при переходе подгружаются мгновенно.).
там страницу кэшируют и получаете вы локальную копию, а потом уже, по ходу песни, AJAX подгружает чего надо... как-то так. хотя я не знаю точно, тк не пользуюсь, но это обычная практика высоко нагруженных ресурсов, тк каждый раз все перегружать для ресурса еще более накладно, чем для пользователя.

Добавлено через 8 минут
Shamsik, делайте класс
Java
1
2
3
4
5
6
7
class JSONKeeper {
private static String JSONContent;
setContent();
getContent();
}
JSONKeeper Keeper = new JSONKeeper();// напишите конструктор, чтобы прогружал необходимые вам данные;
TextView.setText(JSONContent.getContent());
если совсем упрощенно...
0
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
30.04.2016, 21:30 #9
Лучший ответ Сообщение было отмечено vxg как решение

Решение

Shamsik, не понял в чём проблема, но лан)
Вот моя либа, в ней есть MemCache. https://github.com/YuraAAA/android-develop-utils#typed-cache
1
Shamsik
-42 / 17 / 15
Регистрация: 23.12.2013
Сообщений: 521
Записей в блоге: 1
Завершенные тесты: 2
30.04.2016, 23:42  [ТС] #10
А говоришь не понял ))).

Уточнение:
Если тебе не сложно будет можешь в двух словах объяснить как он сможет работать с Текстом которых храниться тут


Java
1
2
3
4
5
6
7
8
9
10
11
12
String json = jsonParser.makeHttpRequest(AppConfig.URL_USERAVATAR, "GET", paramsitem);
            
try
    {
        JSONObject jitem = new JSONObject(json);
 
            text      =  jitem.getString("full_text");
            
    } catch (JSONException e)
    {
        e.printStackTrace();
    }
text -- Эта переменная получила полный текст с сайта.
Как его кэшировать, чтобы он не получал еще раз текст с JSON файла.


Просто как я уже говорил раннее, при каждом обновление Activity получает информацию через 2-3 секунды, если интернет отрубиться все считай ничего не сможет получит, а мне нужно было чтобы к примеру если интернет отвалится чтобы информация подгружалась из кеша.

Надеюсь поняли, вышеуказанное описание. )))
0
Alexvp
111 / 75 / 8
Регистрация: 03.08.2014
Сообщений: 389
01.05.2016, 00:05 #11
Цитата Сообщение от Shamsik Посмотреть сообщение
text -- Эта переменная получила полный текст с сайта.
Как его кэшировать, чтобы он не получал еще раз текст с JSON файла.
Проверяй наличие переменной, например, через ее длину. Если длина больше 0, то данные есть и запрос на сайт не нужен. Все просто.
0
CoolMind
421 / 404 / 65
Регистрация: 06.10.2012
Сообщений: 1,732
01.05.2016, 00:38 #12
Как я считаю, хранить кэшированную информацию надо не в переменных, а в SharedPreferences или БД. Поможет при выходе из приложения, завершении активностей и т.п.
0
Shamsik
-42 / 17 / 15
Регистрация: 23.12.2013
Сообщений: 521
Записей в блоге: 1
Завершенные тесты: 2
01.05.2016, 05:16  [ТС] #13
Я та, об этом и говорю, как правильнее хранить эти данные чтобы не было проколов, фиксировать изменение данные на сайте и применить их в приложении.... и.м.д..
0
vxg
Модератор
3246 / 2047 / 322
Регистрация: 13.01.2012
Сообщений: 7,926
01.05.2016, 07:27 #14
CoolMind, если кэш сделать статической переменной приложения все должно быть нормально. Завершение работы приложения / выключение тела - достаточный повод чтобы обновить кэш. У YuraAAA вроде есть все необходимое
0
01.05.2016, 07:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.05.2016, 07:27

Ошибка - Errororg.json.JSONExceprion: Value bd.json of type java.lang.String cannot be converted to JSONObject
Здравствуйте! Есть база данных bd.json, которая находится в проекте в папке...

Data Base in android
Создал класс базы данных, создаю в MainActivity экземпляр класса базы, но при...

SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data
Всем привет, пытаюсь произвести запрос к обработчику c помощью AJAX, выдает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru