在Android应用中使用大型数据库

时间:2016-06-16 23:44:55

标签: android sqlite

我有一个使用SQLite数据库的Android应用程序。问题是数据库已经变得非常大(41.6 MB),我开始怀疑我是否正确地将它加载到应用程序中。

现在我正在做的是在我的应用程序的启动画面的onCreate()方法中我打开数据库,查询数据库,将数据保存为对象,然后关闭数据库。冷启动需要相当长的时间。理想情况下,我希望在首次启动时完成所有这些操作,并将数据保存在设备上的某个位置,以加快未来的发布速度。我有办法做到吗?

1 个答案:

答案 0 :(得分:1)

我之前遇到过同样的问题。可能就是同样的情况。我的一个是因为我ping了太多次Backend API而且还有一个问题就是插入你的Object。可能当你插入它时,应该插入一次的数据,如果你要插入许多对象,你在for循环中插入它太多次了。您可以在插入代码时插入代码。许多开发人员并不关心这一点,但实际上这对用户来说真的很烦人。

因为我的原因:

  manager.removeAllStop();
  manager.removeAllUpload(); //--> remove the data before insert the new one

  for (Stop stop : SomeStopsList) { //--> when I want to loop through and want to add it to other object

      **manager.insertAppTourStopList(appTourStopList);** //--> PROBLEM HERE !!!! THIS COULD BE OUTSIDE FROM THE LIST BECAUSE YOU WANT THIS TO BE ADDED ONCE ONLY

      ArrayList<Upload> uploadList = new ArrayList<Upload>(); // --> new object
      for (Upload uploadData : stopList.uploads) { //--> get the list and loop 
          Upload upload = new Upload(); //--> create new object
          upload.setStopId(stopList.getId()); //--> insert it
     }
  }