我正在开发一个在服务器上有数百万条记录的项目,我需要通过Web服务从服务器获取这些数据并插入到Sqlite数据库中。
问题是,为了从服务器获取这些细节,它花费了太多时间,因为从服务器重新获取的数据非常庞大。
它也花了太多时间插入Sqlite数据库。
任何人都可以为此提供一个可能的解决方法。
答案 0 :(得分:1)
使用AsyncTask class
从服务器
AsyncTask类封装了后台进程的创建 以及与主线程的同步。它也支持 报告正在运行的任务的进度。
更多信息请访问:http://www.vogella.com/tutorials/AndroidBackgroundProcessing/article.html
数据库操作很慢,并且在需要插入数千条记录的情况下,插入每条记录会占用大量时间并影响应用程序的性能。在这种情况下,批量插入可以节省一些开销。如果在单个事务中进行批量插入,则可以节省大量时间。
SQLite
在SQLiteDatabase
类中提供了三种简单的方法:
答案 1 :(得分:0)
从ascryask等不同线程中的服务器获取数据,并将该数据插入单独的线程中......并创建一个广播接收器,以便在数据完成插入时,它会通知您数据已加载到您的应用数据库中。
答案 2 :(得分:0)
您可以使用IntentService而不是使用Asynctask,它比Asynctask更优化。此外,它运行在一个单独的线程上。
答案 3 :(得分:0)
将数百万条记录存储在移动设备上真是一个非常糟糕的主意。如果真的需要一个Web应用程序就足够了。
如果需要这个要求,那么您可以指定页面,即在一个页面中,调用一些记录,保留总项目数,并更新页码。使用服务也是为了后续调用服务器获取数据,同时尝试向用户显示一些项目,同时从服务中添加其他项目。