我有一个Android应用程序,在我的登录活动中,我从Web服务获取数据并将其插入到sqlite数据库中,在我的主要活动中,我从数据库中选择此数据。
我的问题是我第一次使用该应用时,列表将为空
我调试了应用程序,当我在登录和主要活动之间保持少量时间时,它运行良好但是当我快速运行它时,列表将为空
我认为Ormlite库有延迟,我不知道也许我错了
我该如何解决这个问题?
注意:我使用Async任务从Web服务读取数据,在post execute方法中我将数据插入数据库然后我使用intent调用了我的主要活动
答案 0 :(得分:1)
DB操作尤其是多个操作需要时间。这也是ORM文档中所述的某个地方。因此,使用AsyncTask执行此操作是正确的方法。我认为填充数据库不是在post执行方法,而是在doInBackground
方法,如WebService调用。确保使用WeakReference到ORM-DB-Connector。此外,使用Handler和ProgressDialog的组合为用户提供有关进度的提示。
答案 1 :(得分:1)
我认为Ormlite库有延迟,我不知道也许我错了
ORMLite更新数据库所需的时间与更改的数据量成正比。如果要添加大量行,则应考虑使用Dao.callBatchTasks(...)
方法将其作为批处理。
请点击此处了解详情:ORMLite's createOrUpdate seems slow - what is normal speed?