使用Android中的Volley从JSON下载大数据

时间:2016-04-13 12:28:55

标签: android json sqlite android-volley

我正在构建一个Android应用程序,我需要使用Volley通过JSON解析数据库中的数据。我在表中有 17,000+行,我需要通过JSON从表中获取所有行,我需要将它存储在SQLite中。下载后,用户可以修改所有行的字段。一旦字段被修改。需要将整个数据发送回服务器(如同步)。

我的问题是,如果我尝试将这些庞大的数据下载到我的应用中。它正在崩溃。有什么方法可以让这个应用程序工作。还告诉我如何使用volley从服务器解析大量数据。

5 个答案:

答案 0 :(得分:2)

我认为因为timeOutError而崩溃了。当volley必须解析大量数据时,您应该为您的排球请求设置超时。默认超时为2500毫秒,将其设置为10000毫秒或更高,它将适用于前。

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

它不会消耗您分配的所有时间,但一旦获取所有数据就会断开连接

timeoutError不会让你崩溃,但是会调用onErrorResponse,请确保在插入操作之前创建了要插入的表。

答案 1 :(得分:1)

1-使用Gson解析数据并存储在ormlite数据库中 2 - 修改数据库表后,应使用同步适配器将表同步行同步到服务器 3 - 使服务与服务器同步

答案 2 :(得分:0)

在应用程序清单中启用largheap。 使用此link了解如何启用它

我正在使用改造来下载大文件。 尝试使用jsonreader解析大数据。

答案 3 :(得分:0)

我认为你得到OutOfMemoryException,我是对的吗? 对大量数据进行分页,你可以从服务器中提取100×100或1000×1000,然后直接将它们存储在sqlite中

答案 4 :(得分:0)

我不确定您使用的是哪种类型的服务器技术。下载17K +数据并上传相同数量的加班时间我猜不是技术的最佳使用。

尝试一些可减轻数据同步和解析负担的技术。我相信你了解Google的Firebase。这种情况下的解决方案之一。

如果我在这种情况下误解了你的问题,请告诉我。