问题描述
我是一名新的Android开发人员,可以就我遇到的问题使用一些建议。
我有一个应用程序,它几乎在您打开的每个活动中查询来自Amazon Product API的数据。 我能够获取数据,但活动需要永远加载,因为我一直在运行API查询。
该应用程序基本上是一个视频游戏评论应用程 用户多次为游戏加载相同的数据并不罕见。 我在想,让api一遍又一遍地调用相同的数据是非常低效的。
我的问题是在这种情况下,每次从Amazon API检索数据时,我是否应该将游戏数据保存到本地甚至远程(Firebase)数据库? 然后,每当需要检索数据时,我首先检查它是否在进行API调用之前存在于数据库中?
如果这是正确的,我应该在哪里保存数据(共享prefs,SQLlite,内部存储等)? 如果没有,我该怎么做才能使应用程序更快地拉动和显示数据?
1楼
当你说活动需要永远加载时,我假设你没有在活动中进行这些调用。 让我们逐一回答您的问题。
1)共享Prefs不是一个好选择。 (尝试使用共享首选项只有当你有一堆东西要坚持时)。 在这种情况下,如果您希望节省为数据库编写帮助程序类的工作量,则可以序列化数据(内部存储)。 在我看来,它更适合在本地存储数据。
2)不要总是请求数据。只有当用户想要刷新数据时才更新它(无需忙碌,用户按下刷新按钮)。 或者您可以在固定的时间间隔后更新数据。 这可能涉及在后台升级评论,即使应用程序未运行时也可以使用Alarm Manager启动Service 。 你必须阅读它。