2016-04-13 2 views
1

Я создаю приложение для Android, в котором мне нужно проанализировать данные из базы данных через JSON с помощью Volley. У меня есть 17 000+ строк в таблице, мне нужно получить всю строку из таблицы через JSON, и мне нужно сохранить ее в SQLite. После загрузки пользователь может изменить поля всей строки. Как только поля были изменены. Все данные должны быть отправлены обратно на сервер (например, синхронизация).Загрузите большие данные из JSON, используя Volley in android

В чем моя проблема, если я попытаюсь загрузить эти огромные данные в свое приложение. Он разбился. Есть ли способ, которым я могу сделать, чтобы это приложение работало. Также расскажите, как разбирать огромные данные с сервера, используя залп.

+0

пожалуйста вывесить журнал сбоев –

+1

1- Использование Gson для анализа данных и хранить в базе данных ormlite. \t \t 2-После изменения таблиц базы данных вы должны синхронизировать строку строки строки строки с помощью адаптера синхронизации к серверу. \t \t 3-Make Service для синхронизации с сервером –

+0

вы можете рассмотреть возможность загрузки данных непосредственно в файл без массива байтов в памяти. См. Этот ответ: http://stackoverflow.com/questions/26523191/volley-download-directly-to-file-no-in-memory-byte-array –

ответ

2

1- Используйте Gson для анализа данных и сохранения в базе данных ormlite.
2-После изменения таблиц базы данных вы должны синхронизировать строку строки строки строки с помощью адаптера синхронизации к серверу.
3-Make Service для синхронизации с сервером

0

Включить большую часть в манифесте приложения. Используйте это link, чтобы узнать, как включить его.

Я использую модификацию для загрузки большого файла. Попробуйте разобрать с помощью jsonreader для больших данных.

+0

Я пробовал, и он работал. Можете ли вы сказать мне, есть ли лучший способ следовать моему требованию. ??? – IndependentDev

+0

Использовать AsyncTaskLoader с его быстрой настройкой :) –

0

Я думаю, что вы получаете OutOfMemoryException, я прав? Сделайте пейджинг для огромных данных, вы можете вытащить 100 на 100 или 1000 на 1000 с сервера, тогда вы можете хранить их непосредственно в sqlite

+0

После того, как я включил большую кучу. Теперь я получаю исключение из памяти. При анализе данных на json-массив из строки – IndependentDev

+0

Используйте подкачку вместо включения большой кучи. –

+0

может дать мне одну ссылку ссылку – IndependentDev

3

Я думаю, что он падает из-за timeOutError. Когда волейбол должен разбирать большой объем данных, вы должны установить тайм-аут для своего запроса волейбола. Таймаут по умолчанию составляет 2500 мс, установите его на 10000 мс или выше, он будет работать для ex.

strReq.setRetryPolicy(new DefaultRetryPolicy(10000, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

Он не будет потреблять все время, что вы положенное, но он будет отключен когда все данные скачиваются

timeoutError не даст вам врезаться, но onErrorResponse будет называться, пожалуйста, убедитесь, что таблицы, которые вы собираетесь вставлять, были созданы до начала операции вставки.

+0

Я уже дал его 30000, но все тот же вопрос ... – IndependentDev

+0

Пожалуйста, разместите журнал сбоев, это может помочь нам выявить проблему .. – user1799171

0

Я не уверен, какой тип серверной технологии вы используете. Скачивая 17K + данные и загружая ту же сумму сверхурочных, я думаю, что это не оптимальное использование технологий.

Попробуйте использовать некоторые технологии, которые уменьшают нагрузку на синхронизацию и синтаксический анализ данных. Я уверен, что вы знаете о Firebase от Google. что одно из решений в этом случае.

Дайте мне знать, если я неправильно понял ваш вопрос в этом случае.

Смежные вопросы