从服务器获取非常大的数据并插入sqlite - Android

时间:2014-02-06 04:43:02

标签: android

我正在开发一个在服务器上有数百万条记录的项目,我需要通过Web服务从服务器获取这些数据并插入到Sqlite数据库中。

问题是,为了从服务器获取这些细节,它花费了太多时间,因为从服务器重新获取的数据非常庞大。

它也花了太多时间插入Sqlite数据库。

任何人都可以为此提供一个可能的解决方法。

4 个答案:

答案 0 :(得分:1)

使用AsyncTask class从服务器

获取数据
  

AsyncTask类封装了后台进程的创建   以及与主线程的同步。它也支持   报告正在运行的任务的进度。

更多信息请访问:http://www.vogella.com/tutorials/AndroidBackgroundProcessing/article.html

数据库操作很慢,并且在需要插入数千条记录的情况下,插入每条记录会占用大量时间并影响应用程序的性能。在这种情况下,批量插入可以节省一些开销。如果在单个事务中进行批量插入,则可以节省大量时间。

SQLiteSQLiteDatabase类中提供了三种简单的方法:

  1. 的BeginTransaction();
  2. setTransactionSuccessful();
  3. endTransaction()方法;
  4. 更多信息请访问:http://gafurbabu.wordpress.com/tag/android-example/

答案 1 :(得分:0)

从ascryask等不同线程中的服务器获取数据,并将该数据插入单独的线程中......并创建一个广播接收器,以便在数据完成插入时,它会通知您数据已加载到您的应用数据库中。

答案 2 :(得分:0)

您可以使用IntentService而不是使用Asynctask,它比Asynctask更优化。此外,它运行在一个单独的线程上。

答案 3 :(得分:0)

将数百万条记录存储在移动设备上真是一个非常糟糕的主意。如果真的需要一个Web应用程序就足够了。

如果需要这个要求,那么您可以指定页面,即在一个页面中,调用一些记录,保留总项目数,并更新页码。使用服务也是为了后续调用服务器获取数据,同时尝试向用户显示一些项目,同时从服务中添加其他项目。