我正在为推销员开发Android应用,因此他们可以使用他们的设备来保存订单。具体来说,每天早上销售员都会去办公室并获取当天的数据。
目前,我可以通过向php
文件发送请求来获取数据,并且像通常的做法一样,我们会将这些数据插入Android中的sqlite
,以便它可以脱机工作。但是,使用当前方法,设备需要6-8秒才能获取数据并将这些数据插入sqlite
。随着数据量的增长,我认为这会让它变得更慢。我发现将数据插入sqlite
的过程需要相当长的时间。
所以,我一直在考虑将销售人员所需的所有数据转储到sqlite
文件中,因此我只能发送我认为更有效的文件。你能告诉我如何做到这一点吗?或者还有其他方法可以解决这个问题吗?
注意:
答案 0 :(得分:0)
你可以在这里采用不同的方法来实现加载速度:
如果您的数据可以预先加载apk,您可以将它们存储在.apk中,当用户下载应用程序时,它会在那里,您只需要调用剩余的更新数据。
< / LI>如果您每次都需要刷新数据,您可以在多次调用中从服务器调用数据块,这将在数据库中获取和存储数据并在UI上进行更新。
如果数据不是太多,(我说,如果有200-300个数据,我们不应该考虑更多)你可以做一些简单的事情: 当你调用网络调用来获取数据时,你应该将这些数据对象传递给数据库进行存储并同时(在存储到db之前),只需将整个列表对象返回到Activity / Fragment,这样它就会有数据,你可以向用户查看这些数据,同时它将存储在数据库中。
另外,你可以在side sqlite中使用no-sql,所以你不需要每次都解析对象(与no-sql比较昂贵)并将所有数据存储在sql中作为整个对象,只要需要,只需从db获取并根据需要解析它。
答案 1 :(得分:0)
感谢@Skynet提及交易,它确实改进了这个过程。所以我现在仍然坚持这种方法..
你可以这样做:
db.beginTransaction();
try {
saveCustomer();
db.setTransactionSuccessful();
} catch {
//Error in between database transaction
} finally {
db.endTransaction();
}
有关详细说明:Android Database Transaction ..